快手2020实习生招聘及应届生补录-算法类笔试B卷
第一题:字符串中连续出现次数大于2的删除:
如:输入12233324,输出14;
python实现(暴力…) import sys ''' 第一题 ''' for line in sys.stdin: a = list(line) # 去掉转换列表最后的换行'\n' a.remove(a[-1]) # print(a) i = j = 0 while i < len(a): j = i while j < len(a) and a[j] == a[i]: j += 1 # 满足连续 if j - i >= 3: # 使用pop删除重复位置对应索引的元素值,k用于计数 k = 0 while k < j - i: a.pop(i) # 或者 del a[i] k += 1 i -= 2 if i < 0: # 连同上句可有可无的判断,减少一些时间复杂度吧 i = 0 # 不满足连续,向下一位对比 else: i += 1 # print(a) # 转字符串 print(''.join(a)) break
全部评论
(3) 回帖