g0301_0400.s0392_is_subsequence.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0301_0400.s0392_is_subsequence;
// #Easy #String #Dynamic_Programming #Two_Pointers #Dynamic_Programming_I_Day_19
// #Level_1_Day_2_String #Udemy_Two_Pointers #2022_07_13_Time_1_ms_(93.01%)_Space_42.2_MB_(32.57%)
/**
* 392 - Is Subsequence\.
*
* Easy
*
* 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).
*
* **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 <= 104
* * `s` and `t` consist only of lowercase English letters.
*
* **Follow up:** Suppose there are lots of incoming `s`, say s1, s2, ..., sk
where k >= 109
, and you want to check one by one to see if `t` has its subsequence. In this scenario, how would you change your code?
**/
public class Solution {
public boolean isSubsequence(String s, String t) {
int i = 0;
int j = 0;
int n = t.length();
int m = s.length();
if (m == 0) {
return true;
}
while (j < n) {
if (s.charAt(i) == t.charAt(j)) {
i++;
if (i == m) {
return true;
}
}
j++;
}
return false;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy