Is Subsequence?

Given a string s and a string t, check if s is subsequence of t.

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

Follow up:
If there are lots of incoming S, say S1, S2, ... , Sk where k >= 1B, and you want to check one by one to see if T has its subsequence. In this scenario, how would you change your code?

Example 1:

Input: s = "abc", t = "ahbgdc"
Output: true

Example 2:

Input: s = "axc", t = "ahbgdc"
Output: false

Constraints:

  • 0 <= s.length <= 100
  • 0 <= t.length <= 10^4
  • Both strings consists only of lowercase characters.
 class Solution {
    public boolean isSubsequence(String s, String t) {
       
      if(s.length()==0)
        return true;
 
    int i=0;
    int j=0;   
    while(i<s.length() && j<t.length()){
        if(s.charAt(i)==t.charAt(j)){
            i++;
        }
 
        j++;
 
        if(i==s.length())
            return true;
    }
 
    return false;
    }
}


It is one of easiest solution. Here we are going to iterate each character in both strings.

1) Provide exit conditions in While such that i, j should not exceed s, t string length.
2) If s and t contains same character, then increase i & j.
3) Else increase j only.

While iterating, if i equals to s string length, then returns true. Else return false.


Subscribe us to receive updates instantly.

Please let us know about your views in comment section.

Happy Coding...😍

Comments

Popular posts from this blog

Balanced Binary Tree

First Unique Character in a String

Majority Element

Smallest Range II