leetcode 百天解题 - day 111 - 1003. 检查替换后的词是否有效
题目名称
给你一个字符串 s ,请你判断它是否 有效 。
字符串 s 有效 需要满足:假设开始有一个空字符串 t = “” ,你可以执行 任意次 下述操作将 t 转换为 s :将字符串 “abc” 插入到 t 中的任意位置。形式上,t 变为 tleft + “abc” + tright,其中 t == tleft + tright 。注意,tleft 和 tright 可能为 空 。
如果字符串 s 有效,则返回 true;否则,返回 false
示例
输入:s = “aabcbc”
输出:true
解释:
“” -> “abc” -> “aabcbc”
因此,”aabcbc” 有效。
输入:s = “abcabcababcc”
输出:true
解释:
“” -> “abc” -> “abcabc” -> “abcabcabc” -> “abcabcababcc”
因此,”abcabcababcc” 有效。
题解
这道题相对来说较为简单,但是方法不对的时候容易超时,我这边的解题思路如下
- 已知每次插入的时候,都是插入一个字符串 abc,因此如果不包含连续的 abc 则代表该字符串无效
- 找到第一个 abc 字符串的序号,然后生成一个新的字符串,这个字符串是由原来的字符串去除abc 后拼接而成的
- 然后重复第一步和第二步操作,知道最后生成的字符串长度为0
答案
1 | /** |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment
DisqusValine