LeetCode 75: 392. Is Subsequence

김준수·2024년 2월 26일
0

LeetCode 75

목록 보기
11/63
post-custom-banner

392. Is Subsequence

Description

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).


두 개의 문자열 st가 주어지면 st의 부분수열이면 true를 반환하고 그렇지 않으면 false를 반환합니다.

부분수열은 나머지 문자의 상대적인 위치를 방해하지 않고 문자의 일부를 삭제함으로써(또는 삭제없이) 원래 문자열에서 형성되는 새로운 문자열입니다. (즉, "ace"는 "abcde"의 부분수열이고 "aec"은 그렇지 않습니다.).

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?


후속조치: 문자열 ss1, s2, ..., sk where k > = 109와 같이 많은 문자 있다고 가정하고, t가 그 부분수열을 갖는지 하나씩 확인하려고 합니다. 이 시나리오에서 코드를 어떻게 변경하시겠습니까?

Solution


class Solution {
    public boolean isSubsequence(String s, String t) {
        if (s.length() == 0)
            return true;

        int sIndex = 0;
        for (int i = 0; i < t.length(); i++) {
            if (s.charAt(sIndex) == t.charAt(i)) {
                sIndex++;
            }
            if (sIndex == s.length()) {
                return true;
            }
        }

        return false;
    }
}
post-custom-banner

0개의 댓글