题目:
给定有效字符串 “abc”。
对于任何有效的字符串 V,我们可以将 V 分成两个部分 X 和 Y,使得 X + Y(X 与 Y 连接)等于 V。(X 或 Y 可以为空。)那么,X + “abc” + Y 也同样是有效的。
例如,如果 S = “abc”,则有效字符串的示例是:“abc”,“aabcbc”,“abcabc”,“abcabcababcc”。无效字符串的示例是:“abccba”,“ab”,“cababc”,“bac”。
如果给定字符串 S 有效,则返回 true;否则,返回 false。
思路:
其实就是说,有效字符串,是多个’abc’的组合。只要abc的顺序不变,就是有效的。
那我就想到了重复的从 字符串 s 中去除 ‘abc’ ,看最后结果是不是 空,只要是空,那就是有效的。
代码
class Solution:
def isValid(self, s: str) -> bool:
while True:
s2 = s
s = s.split('abc')
s = ''.join(s)
if s2==s:
break
print(s)
return s=='abc' or s==''