【python公司校招题】

【python欢聚时代】字符串连连看?

2019-08-10  本文已影响0人  阿牛02

题目:对于输入的字符串,从左到右扫描字符串,如果存在由三个以上(包括三个)连续相同字符组成的子串,就将这个子串从原串中去掉,并将原有字符串剩下的部分拼接到一起。重复上述过程,直到无法去掉任何子串

输入描述:

输入的字符串

输出描述:

最后剩下的子串

示例1

输入

AAABCCDDDCB

输出

BB

code:

def removeDup(s):

    if s is None:

        print("参数不合法")

    if len(s) <= 2:

        return s

    flag = True

    while flag:

        flag = False

        i = 0

        for j in range(1, len(s)):

            while j < len(s) and s[j] == s[i]:

                j += 1

            if j - i >= 3:

                s = s[:i] + s[i + 3:]

                flag = True

                break

            else:

                i = j

                j = i + 1

    return s

if __name__ == "__main__":

    s = 'AAABBBAAABBBAAAABBBAABBBAAAABBBBA'

    print(removeDup(s))

程序运行结果:

ABA

上一篇下一篇

猜你喜欢

热点阅读