392.判断子序列

简介: 392.判断子序列

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

字符串的一个子序列是原始字符串删除一些字符而不改变剩余字符相对位置形成的新字符串。

解题思路:s是否是 t 的子序列,因此只要能找到任意一种 s 在 t 中出现的方式,即可认为 s 是 t 的子序列。

初始两个指针i 和 j ,分别指向 s 和 t 的初始位置。每次贪心地匹配,匹配成功则 i 和 j 同时右移,匹配 s 的下一个位置,匹配失败则 j 右移,i 不变,尝试用t的下一个字符匹配 s。

最终如果 i 移动到 s 的末尾,就说明 s 是 t的子序列。

class Solution{
    public boolean isSubsequence(String s,String t){
        int n=s.length(),m=t.length();
        int i=0,j=0;
        while(i<n && j<m){
            if(s.charAt(i)==t.charAt(j)){
                i++;            
            }       
            j++;             
        }
        return i==n;            
    }
}


相关文章
【Leetcode -389.找不同 -392.判断子序列】
【Leetcode -389.找不同 -392.判断子序列】
50 0
|
6月前
|
测试技术 Perl
【动态规划】【记忆化搜索】【回文】1312让字符串成为回文串的最少插入次数
【动态规划】【记忆化搜索】【回文】1312让字符串成为回文串的最少插入次数
|
6月前
|
测试技术
【力扣】392.判断子序列
【力扣】392.判断子序列
|
6月前
|
算法 测试技术 C#
【字符串】【贪心】【 树状数组】2193. 得到回文串的最少操作次数
【字符串】【贪心】【 树状数组】2193. 得到回文串的最少操作次数
|
6月前
|
算法
【面试算法——动态规划 19】最长回文子序列&& (hard)让字符串成为回文串的最少插入次数
【面试算法——动态规划 19】最长回文子序列&& (hard)让字符串成为回文串的最少插入次数
|
6月前
|
人工智能 算法 Java
判断子序列
判断子序列
32 0
|
6月前
leetcode-392:判断子序列
leetcode-392:判断子序列
42 0
|
6月前
|
存储 编译器 C语言
Day2 排序子序列、倒置字符串
Day2 排序子序列、倒置字符串
47 0
|
算法 程序员 数据处理
字符串的全部子序列(递归)
在计算机科学中,子序列和子串的概念非常重要,这两个概念经常在数据处理,文本分析,编程算法等领域被广泛使用。理解子序列和子串的区别以及如何高效地处理它们对于成为一名有效的程序员是非常重要的。
188 0
最长不重复子串的有趣解法
最长不重复子串的有趣解法
135 0