代码随想录——判断子序列(Leetcode 392)

题目链接
在这里插入图片描述

双指针

思路:
初始化两个指针 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 i = 0;
        for(int j = 0; j < t.length() && i < s.length(); j++){
    
    
            if(s.charAt(i) == t.charAt(j)){
    
    
                i++;
            }
        }
        return i == s.length();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_46574748/article/details/141053105