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 =