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

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)

相关推荐