您好,欢迎来到外链网!
当前位置:外链网 » 站长资讯 » 专业问答 » 文章详细 订阅RssFeed

网易笔试编程题,网易外包软件测试笔试题

来源:互联网 浏览:84次 时间:2023-04-08
笔试有四道编程题每题100分,做对两百分就算通过 第一题是求一个字符串中的字符最大重复次数 我的python代码 import stringt = input()max_str = max(string.ascii_lowercase, key=t.count)max_num = t.count(max_str)print(len(t) - max_num * 2) string.ascii_lowercase输出26个小写英文字母key=t.count统计字母在字符串出现的次数输出重复次数最大的字母(不是数字)所以还是计算出重复次数max_num = t.count(max_str) 第二题是输入n行字符串,对每行字符串消除相邻的重复字符串 重复次数>1,重复消除m次 我的python代码 t = input()n = int(t.split()[0])m = int(t.split()[1])for i in range(n): strings = list(input()) z = 0 for z in range(m): liststring = [] for s in strings: if s == liststring[-1]: liststring.pop() else: liststring.append(s) print("".join(strings)) 这题通过了10%,不知道是算法复杂度太高,n * m * len(strings),还是逻辑错误。 当时的思路是: 将字符串逐个填充到列表中,如果当前字符串和列表中的最后一个相同,就代表重复,删掉列表最后一个,如果不相同,就将当前字符串填充到列表 考完回顾: 逻辑错误一: 如果重复字符串是在三个就会出现错误,如“NBBBN”当前字符串为第二个 B 时,和列表最后一个元素相同,列表删除 B ,此时列表为[“N”],继续循环,当前字符串为第三个 B 时,和列表最后一个元素 N 不同,B 填充进列表,违反了题目要求,正确应该输出 NN,此时为 NBN 逻辑错误二: 如果字符串存在,如“NBBN”形式的片段当前字符串为第二个 B 时,和列表最后一个元素相同,列表删除 B ,此时列表为[“N”],继续循环,当前字符串为第二个 N 时,和列表最后一个元素 N 相同,列表删除 N,违反了题目要求,正确应该输出 NN,此时为 “” 逻辑错误三: for z in range(m):循环的最后没有将 liststring 赋值给strings,最后输出的strings其实并没有做处理,还是输入的strings 笔试后复盘检查,发现这题不难,只能说我学了两个月python还是一只菜鸡 第二题复盘的时候恍然大悟,这题的重点在于什么是 ### 相邻重复的字符串 即一个字符和它左边或者右边的字符相同就是相邻重复 反过来说 如果一个字符和它左边或者右边的字符都不同那就是不重复 代码如下 t = input()n = int(t.split()[0])m = int(t.split()[1])for i in range(n): strings = list(input()) z = 0 for z in range(m): liststring = [] for s in range(len(strings)): if strings[s - 1] != strings[s] and strings[s + 1] != strings[s]: liststring.便宜香港vpsappend(strings[s]) strings = liststring print("".join(strings))

欢迎访问我的博客网站查看更多博客或者搜索 天健寺个人博客
ps:人生艰难哦,我现在都有些考虑报班了,自学了两个月还是菜鸡,哎。。

03730581