In this Leetcode Is Subsequence problem solution you have given two strings s and t, return true if s is a subsequence of t, or false otherwise.

A subsequence of a string is a new string that is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (i.e., "ace" is a subsequence of "abcde" while "aec" is not).

leetcode is subsequence problem solution


Problem solution in Python.

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        j,n=0,len(t)
        for i in s:
            while j<n and t[j]!=i:
                j+=1
            if j>=n:
                return False
            j+=1
        return True



Problem solution in Java.

public boolean isSubsequence_basic(String s, String t) {
        if(s==null) return false;
        if(s.length()==0) return true;
        int i=0, j=0;
        while(i<s.length() && j<t.length()){
            char cs = s.charAt(i);
            char ct = t.charAt(j);
            if(cs==ct){
                i++;
            }
            j++;
        }
        return i==s.length();
    }


Problem solution in C++.

class Solution {
public:
    bool isSubsequence(string s, string t) {
        int sI = 0;  
        if(s.length() == 0) return true;
        for(int i = 0 ; i < t.length();i++){
           if(t[i] == s[sI]){
               ++sI;
           } 
            if(sI == s.length()) return true;
        }
        return false;
    }
};


Problem solution in C.

bool isSubsequence(char * s, char * t){
    int j = 0;
    
    for (int i = 0; s[j] && t[i]; i++) {
        if (t[i] == s[j]) {
            j += 1;
        }
    }
    
    return (j == strlen(s));
}