题目如下:
We are given that the string
"abc"is valid.From any valid string
V, we may splitVinto two piecesXandYsuch thatX + Y(Xconcatenated withY) is equal toV. (XorYmay be empty.) Then,X + "abc" + Yis also valid.If for example
S = "abc", then examples of valid strings are:"abc", "aabcbc", "abcabc", "abcabcababcc". Examples of invalid strings are:"abccba","ab","cababc","bac".Return
trueif and only if the given stringSis valid.
Example 1:
Input: "aabcbc" Output: true Explanation: We start with the valid string "abc". Then we can insert another "abc" between "a" and "bc", resulting in "a" + "abc" + "bc" which is "aabcbc".Example 2:
Input: "abcabcababcc" Output: true Explanation: "abcabcabc" is valid after consecutive insertings of "abc". Then we can insert "abc" before the last letter, resulting in "abcabcab" + "abc" + "c" which is "abcabcababcc".Example 3:
Input: "abccba" Output: falseExample 4:
Input: "cababc" Output: false
Note:
1 <= S.length <= 20000S[i]is‘a‘,‘b‘, or‘c‘
解题思路:这个题目有点用巧的意思了,可以逆向思维。每次从input中删除掉一个"abc",如果最后input能变成空就是True,否则就是False。
代码如下:
class Solution(object): def isValid(self, S): """ :type S: str :rtype: bool """ while len(S) > 0: inx = S.find(‘abc‘) if inx == -1: return False S = S[:inx] + S[inx+3:] return True
【leetcode】1003. Check If Word Is Valid After Substitutions
原文:https://www.cnblogs.com/seyjs/p/10469214.html