zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):第392题:判断子序列:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

    题目:

    判断子序列:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

    你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。

    字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。

    示例 1:
    s = "abc", t = "ahbgdc"

    返回 true.

    示例 2:
    s = "axc", t = "ahbgdc"

    返回 false.

    后续挑战 :

    如果有大量输入的 S,称作S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?

    致谢:

    特别感谢 @pbrother 添加此问题并且创建所有测试用例。

    思路:

    双指针,较简单。

    程序:

    class Solution:
        def isSubsequence(self, s: str, t: str) -> bool:
            if not s and t:
                return True
            if s and not t:
                return False
            if not s and not t:
                return True
            index1 = 0
            index2 = 0
            counter = 0
            while index1 < len(s) and index2 < len(t):
                if s[index1] == t[index2]:
                    index1 += 1
                    counter += 1
                index2 += 1
            if counter == len(s):
                return True
            else:
                return False
    

      

  • 相关阅读:
    轮播图
    原生js实现分页效果(带实例)
    mint-ui Toast icon 图标
    阮小二买彩票
    js事件冒泡和事件捕捉
    html,css,js加载顺序
    单调栈-哈希表-768. 最多能完成排序的块 II
    同余问题-三整除系列
    动态规划-区间dp-单调栈-1130. 叶值的最小代价生成树
    动态规划-1Ddp-983. 最低票价
  • 原文地址:https://www.cnblogs.com/zhuozige/p/13023996.html
Copyright © 2011-2022 走看看