← Strings

Check Subsequence

Easy
Python
def is_subsequence(s,t):
    i=0
    for c in t:
        if i<len(s) and c==s[i]: i+=1
    return i==len(s)
Java
public boolean isSubsequence(String s,String t){
    int i=0;
    for(int j=0;j<t.length();j++)
        if(i<s.length()&&t.charAt(j)==s.charAt(i)) i++;
    return i==s.length();
}

Key Insight

Two-pointer on strings. Direct iteration vs charAt().

Python → Java Differences

  • for c in t vs charAt()
  • len() vs .length()
  • Two-pointer identical
Python
def is_subsequence(s,t):
    i=0
    for c in t:
        if i<len(s) and c==s[i]: i+=1
    return i==len(s)
Java
public boolean isSubsequence(String s,String t){
    int i=0;
    for(int j=0;j<t.length();j++)
        if(i<s.length()&&t.charAt(j)==s.charAt(i)) i++;
    return i==s.length();
}

Algorithm Steps

1. Scan t
2. Match chars of s in order