快手2020实习生招聘及应届生补录-算法类笔试B卷
快手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