面试总结

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351