美文网首页
面试总结

面试总结

作者: 浪花三朵 | 来源:发表于2019-06-27 12:19 被阅读0次

    2019-06-25

    一. 旷视科技

    1. 给定一个字符串,找出里面的特殊字符
      解题思路:利用正则表达式-选择匹配方法,因为是找出所有的特殊字符,所以使用 findall() 方法
    import re
    def find_special_character():
        info = input("请输入原始字符串信息:")
        result = re.findall(".*?(\W)|_", info)
        return result
    
    if __name__ == "__main__":
        result = find_special_character()
        print(result)
    
    结果: special_character.PNG

    二、北京希瑞亚斯科技(Moka)

    冒泡排序:

    冒泡排序
    Python

    def bubble_sort(nums):
        for i in range(len(nums) - 1):  # 这个循环负责设置冒泡排序进行的次数
            for j in range(len(nums) - i - 1):  # j为列表下标
                if nums[j] > nums[j + 1]:
                    nums[j], nums[j + 1] = nums[j + 1], nums[j]
        return nums
        
    if __name__ == "__main__":
        nums = [4, 9, 1, 10 ,23, 19, 80, 49]
        bubble_sort(nums)
        print(nums)
    
    二分查找

    首先,假设列表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

    def bin_search(data_list, val):    
        low = 0                         # 最小数下标    
        high = len(data_list) - 1       # 最大数下标    
        while low <= high:        
            mid = (low + high) // 2     # 中间数下标        
            if data_list[mid] == val:   # 如果中间数下标等于val, 返回            
                return mid        
            elif data_list[mid] > val:  # 如果val在中间数左边, 移动high下标            
                high = mid - 1        
            else:                       # 如果val在中间数右边, 移动low下标            
                low = mid + 1    
        return # val不存在, 返回None
    ret = bin_search(list(range(1, 10)), 3)
    print(ret)
    
    数据库操作
    1. 查询所有科目分数大于等于 70 的人,并输出平均分


      scores.PNG

      分组查询和 where 结合使用, 这个感觉有点难度。首先你要筛选所有科目大于等于70 的人。这个要反逻辑思考,哪些人没在,再去掉这些人。

    select name, avg(score) 平均分 from scores where (name not in (select name from scores where score<70)) group by name;
    

    龙之门教育

    判断 tomcat 服务器是否启动

    ps -ef|grep java

    此条命令具体含义
    ps: 将某个进程显示出来
    -A  显示所有程序。
    -e  此参数的效果和指定"A"参数相同。
    -f  显示UID,PPIP,C与STIME栏位。
    grep命令是查找

    判断 Nginx :ps -ef|grep nginx

    jmeter 接口压力测试

    这里先给到用 python django 框架快速搭建的一个接口,用的 IDEA 是 Pycharm。
    django 安装自行百度,直接上接口代码,运行项目启动接口。

    1. 测试计划右键--添加--Threads(Users)--线程组(线程数就是并发数)
    2. 线程组右键--Sampler--HTTP 请求--填写域名或 IP、端口默认 8000(django 默认的接口是 8000),选择请求方式 post,填写 path 路径,配置请求体。这里切记路径后面要有 / . QQ图片20191220110819.png
    3. 添加断言:右键线程组--添加--断言-相应断言,可以选择断言类型。
      例如: 测试字段-响应代码 模式匹配规则-相等 测试模式-200
      请求响应结果只 为 200 则请求成功。
    4. 查看:右键线程组--添加--监听器--察看结果树(聚合报告)--点击上面的运行按钮,查看返回值

    打印菱形

    def draw_rhombus(side_len):
        s = "*"
        for i in range(1, side_len*2, 2):
            print((s*i).center(side_len*2-1))
        for i in reversed(range(1, side_len*2-2, 2)):
            print((s * i).center(side_len*2-1))
    
    
    if __name__ == '__main__':
        draw_rhombus(5)
    

    判断字符串是否是有效的ip(100.000.000~255.255.255)

    import re
    
    
    def judge_legal_ip(one_str):
    
        """
        正则匹配方法:match() 从字符串的起始位置开始匹配,若起始位置不匹配则会直接返回 None
        判断一个字符串是否是合法IP地址
        """
    
        compile_rule = '[1-2][0-5]{2}.[0-2][0-5]{2}.[0-2][0-5]{2}$'
        result = re.match(compile_rule, one_str)
        if result is None:
            print("False")
        else:
            print("True")
    
    
    if __name__ == '__main__':
        test_ip = ["122.234.155b", "a122.000.000", "011.111.222", "022.256.000",
                   "222.111.300", "222, 111,100", "122.000.000"]
        for i in test_ip:
            judge_legal_ip(i)
    
    image.png

    判断两个字典中不同的key及value

    # 判断两个字典,若key不同,打印key及value;若key相同,value不同打印key及value
    # value 可能同样是字典,同样需要判断key及value(递归)
    
    
    def judge_dict(dict1, dict2):
    
        # dict1 中不同的key
        for key in dict1.keys():
            if key not in dict2.keys():
                print(key, dict1[key])
    
        # dict2 中不同的key
        for key in dict2.keys():
            if key not in dict1.keys():
                print(key, dict2[key])
            else:
                if dict1[key] != dict2[key]:
                    print(key, dict1[key], dict2[key])
                    if isinstance(dict1[key], dict) and isinstance(dict2[key], dict):
                        judge_dict(dict1[key], dict2[key])
    
    
    if __name__ == '__main__':
        dict11 = {'name': 'ni', 'city': 'tt', 'id': 2256, "address": {"province": "河北", "city": "石家庄"}}
        dict22 = {'name': 'ni', 'city': 'tt', 'id': 225633, "sex": 1, "address": {"province": "河北", "city": "邯郸",
                                                                                  "country": "西陆开"}}
        judge_dict(dict11, dict22)
    
    
    image.png

    58同城

    查看端口是否占用

    netstat -anp |grep 8080
    若显示 listen 表示被使用

    [root@iZ2ze5m0y26ihszxox3engZ ~]# netstat -anp |grep 8080
    tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      13954/java      
    

    查看日志命令

    tail -f filename会把文件里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容

    1. 输出最后的100个字符
    [root@peipei3514 usr]# tail -c 100 test.log
    018-09-15 15:56:10:725 THERP
    199 2018-09-16 15:57:16:725 DWMTJ
    200 2018-09-17 15:58:13:725 PHKIZ
    
    1. 从第6500个字符开始输出,一直到最后
    [root@peipei3514 usr]# tail -c +6500 test.log
     RBZDP
    190 2018-09-07 15:48:11:724 PFMXT
    191 2018-09-08 15:49:15:724 MWPPA
    192 2018-09-09 15:50:06:724 UWRQM
    193 2018-09-10 15:51:06:724 KOKZL
    194 2018-09-11 15:52:22:724 WDKSI
    195 2018-09-12 15:53:16:724 UXTIP
    196 2018-09-13 15:54:06:724 XXTYN
    197 2018-09-14 15:55:12:725 KWUAX
    198 2018-09-15 15:56:10:725 THERP
    199 2018-09-16 15:57:16:725 DWMTJ
    200 2018-09-17 15:58:13:725 PHKIZ
    
    1. 输出最后的5行
    [root@peipei3514 usr]# tail -n 5 test.log
    196 2018-09-13 15:54:06:724 XXTYN
    197 2018-09-14 15:55:12:725 KWUAX
    198 2018-09-15 15:56:10:725 THERP
    199 2018-09-16 15:57:16:725 DWMTJ
    200 2018-09-17 15:58:13:725 PHKIZ
    
    1. 从第196行开始输出,一直到最后
    [root@peipei3514 usr]# tail -n +196 test.log
    196 2018-09-13 15:54:06:724 XXTYN
    197 2018-09-14 15:55:12:725 KWUAX
    198 2018-09-15 15:56:10:725 THERP
    199 2018-09-16 15:57:16:725 DWMTJ
    200 2018-09-17 15:58:13:725 PHKIZ
    
    1. 输出指定文件的最后十行,同时继续监视文件内容有无变化,新增内容会继续输出,直到按下 [Ctrl-C] 组合键停止该命令
    [root@peipei3514 usr]# tail -f test.log
    191 2018-09-08 15:49:15:724 MWPPA
    192 2018-09-09 15:50:06:724 UWRQM
    193 2018-09-10 15:51:06:724 KOKZL
    194 2018-09-11 15:52:22:724 WDKSI
    195 2018-09-12 15:53:16:724 UXTIP
    196 2018-09-13 15:54:06:724 XXTYN
    197 2018-09-14 15:55:12:725 KWUAX
    198 2018-09-15 15:56:10:725 THERP
    199 2018-09-16 15:57:16:725 DWMTJ
    200 2018-09-17 15:58:13:725 PHKIZ
    
    1. 指定多个文件并输出文件名
    [root@peipei3514 usr]# tail -v test.log test2.log
    ==> test.log <==
    191 2018-09-08 15:49:15:724 MWPPA
    192 2018-09-09 15:50:06:724 UWRQM
    193 2018-09-10 15:51:06:724 KOKZL
    194 2018-09-11 15:52:22:724 WDKSI
    195 2018-09-12 15:53:16:724 UXTIP
    196 2018-09-13 15:54:06:724 XXTYN
    197 2018-09-14 15:55:12:725 KWUAX
    198 2018-09-15 15:56:10:725 THERP
    199 2018-09-16 15:57:16:725 DWMTJ
    200 2018-09-17 15:58:13:725 PHKIZ
    
    ==> test2.log <==
    391 2019-03-27 22:00:38:800 GKAVS
    392 2019-03-28 22:01:39:801 FZZQO
    393 2019-03-29 22:02:36:801 SMEUF
    394 2019-03-30 22:03:34:801 SMKWL
    395 2019-03-31 22:04:35:801 VIADG
    396 2019-04-01 22:05:24:801 VRGTH
    397 2019-04-02 22:06:27:801 GDPIV
    398 2019-04-03 22:07:30:801 WDEWY
    399 2019-04-04 22:08:27:802 MXKMM
    400 2019-04-05 22:09:42:802 EMIYR
    
    1. 指定多个文件不输出文件名
    [root@peipei3514 usr]# tail -q test.log test2.log
    191 2018-09-08 15:49:15:724 MWPPA
    192 2018-09-09 15:50:06:724 UWRQM
    193 2018-09-10 15:51:06:724 KOKZL
    194 2018-09-11 15:52:22:724 WDKSI
    195 2018-09-12 15:53:16:724 UXTIP
    196 2018-09-13 15:54:06:724 XXTYN
    197 2018-09-14 15:55:12:725 KWUAX
    198 2018-09-15 15:56:10:725 THERP
    199 2018-09-16 15:57:16:725 DWMTJ
    200 2018-09-17 15:58:13:725 PHKIZ
    391 2019-03-27 22:00:38:800 GKAVS
    392 2019-03-28 22:01:39:801 FZZQO
    393 2019-03-29 22:02:36:801 SMEUF
    394 2019-03-30 22:03:34:801 SMKWL
    395 2019-03-31 22:04:35:801 VIADG
    396 2019-04-01 22:05:24:801 VRGTH
    397 2019-04-02 22:06:27:801 GDPIV
    398 2019-04-03 22:07:30:801 WDEWY
    399 2019-04-04 22:08:27:802 MXKMM
    400 2019-04-05 22:09:42:802 EMIYR
    

    轻松筹

    给一个集合 a= [1, 3, 8, 2, 1, 9, 4, 2],去除里面的重复元素
    方法1 利用 set 的特性,不能有重复值

    >>> a = [1, 3, 8, 2, 1, 9, 4, 2]
    >>> a = set(a)
    >>> a
    {1, 2, 3, 4, 8, 9}
    

    方法二 直接写个方法条件判断

    def solution(ns: List):
        temp = []
        for i in ns:
            if i not in temp:
                temp.append(i)
        return temp
    

    相关文章

      网友评论

          本文标题:面试总结

          本文链接:https://www.haomeiwen.com/subject/ohcccctx.html