리트코드 392번 - Is Subsequence

한시온·2022년 10월 3일
0
post-thumbnail

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

Examples

Example 1:

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

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

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

Solution

class Solution {
public:
    bool isSubsequence(string s, string t) {
        auto sp = s.begin();
        
        for (char c : t) {
            if (c == *sp) {
                sp += 1;
            }
        }
        return sp == s.end();
    }
};

Explanation

Pseudocode

procedure isSubsequence(S, T)
	S <- iterator to the biginning of S
    E <- iterator to the end
    
    for each C in T do
    	if C == *S then move S to the next
	end for
    
    if S == E 
    	then return true 
    else 
    	return false
    end if
end procedure

Reference

https://leetcode.com/problems/is-subsequence/

profile
가볍고 무겁게

0개의 댓글