删除指定字符串的算法题,面试时候没做出来

很多年没来这里了。

今天上午参加了字节跳动视频面试,面试官让现场做一道算法题,有点紧张做错了。我把题目发出来,有需要的朋友看看。

题目:删除字符串
描述:给定一个字符串,不考虑大小写,将该字符串中连续的某个子串'XXX'删除,返回结果中不包含'XXX'.
例子:
输入字符串:aaaabbbbb
XXX子串:ab
输出结果:b

结束面试后,花了几分钟时间做了一下(用python语言实现)。

 1 def removeString(in_str, remove_str='ab'):
 2     ret_list=[]
 3     str_len=len(remove_str)
 4     need_skip_index=-1
 5     for i, value in enumerate(in_str):
 6         if i < need_skip_index:
 7             continue
 8         elif in_str[i: i+str_len] == remove_str:
 9             need_skip_index=i+str_len
10             continue
11         else:
12             ret_list.append(value)
13             if ''.join(ret_list[-str_len:]) == remove_str:
14                 ret_list = ret_list[:len(ret_list)-str_len]
15     return ''.join(ret_list)
16 
17 ret=removeString('aababc')
18 print(ret)

 

posted @ 2020-03-01 13:14  大料  阅读(350)  评论(0编辑  收藏  举报