zoukankan      html  css  js  c++  java
  • 【leetcode】1003. Check If Word Is Valid After Substitutions

    题目如下:

    We are given that the string "abc" is valid.

    From any valid string V, we may split V into two pieces X and Y such that X + Y (X concatenated with Y) is equal to V.  (X or Y may be empty.)  Then, X + "abc" + Y is 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 true if and only if the given string S is 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: false
    

    Example 4:

    Input: "cababc"
    Output: false

    Note:

    1. 1 <= S.length <= 20000
    2. S[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
  • 相关阅读:
    Annual Summary-2019
    (翻译向)kafka--简介篇1
    mysql 查看数据库大小
    nohup保证程序后台运行
    NLP(四):文本向量化word2vec
    NLP(三):关键词提取
    NLP(二):jieba高频词提取
    NLP(一):jieba分词
    爬虫(一)百度翻译
    【论文笔记】社交网络中的信息扩散分析及其应用研究
  • 原文地址:https://www.cnblogs.com/seyjs/p/10469214.html
Copyright © 2011-2022 走看看