vs00ASPNET 2020-03-01
很多年没来这里了。
今天上午参加了字节跳动视频面试,面试官让现场做一道算法题,有点紧张做错了。我把题目发出来,有需要的朋友看看。
题目:删除字符串 描述:给定一个字符串,不考虑大小写,将该字符串中连续的某个子串‘XXX‘删除,返回结果中不包含‘XXX‘. 例子: 输入字符串:aaaabbbbb XXX子串:ab 输出结果:b
结束面试后,花了几分钟时间做了一下(用python语言实现)。
def removeString(in_str, remove_str=‘ab‘):
ret_list=[]
str_len=len(remove_str)
need_skip_index=-1
for i, value in enumerate(in_str):
if i < need_skip_index:
continue
elif in_str[i: i+str_len] == remove_str:
need_skip_index=i+str_len
continue
else:
ret_list.append(value)
if ‘‘.join(ret_list[-str_len:]) == remove_str:
ret_list = ret_list[:len(ret_list)-str_len]
return ‘‘.join(ret_list)
ret=removeString(‘aababc‘)
print(ret) >>> a = " a b c ". # replace主要用于字符串的替换replace. # join为字符字符串合成传入一个字符串列表,split用于字符串分割可以按规则进行分割。>>> c =