题目描述:
给定有效字符串 "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
。
示例1:
输入:“aabcbc”
输出:true
解释:从有效字符串“abc”开始。然后我们可以在“a”和“bc”之间插入另一个“abc”,产生“a”+“abc”+“bc”,即“aabcbc”
示例2:
输入:“abcabcababcc”
输出:true
示例3:
输入:“abccba”
输出:false
示例4:
输入:“cababc”
输出:false
提示:
1 <= S.length <= 20000
S[i]
为'a'
、'b'
、或'c'
class Solution(object):
def isValid(self, S):
"""
:type S: str
:rtype: bool
"""
#思路:每次在S中寻找字符串“abc”,若找的到则用""来替代;若最终S长度不为0,则返回false,否则返回true
while len(S) != 0:
if 'abc' in S:
S = S.replace('abc','')
else:
return False
return True
菜鸟一枚,代码仅供参考,如有问题,望指正~