두 개의 문자열 S와 T가 있다고 가정합니다. S가 T의 하위 시퀀스인지 여부를 확인해야 합니다.
따라서 입력이 S ="abc", T ="adbrcyxd"와 같으면 출력은 True
가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
s가 t와 같으면 -
-
true를 반환
-
-
n :=s의 크기, m :=t의 크기
-
j :=0
-
initialize i :=0의 경우, i
-
t[j]가 s[i]와 같으면 -
-
(j를 1씩 증가)
-
-
j가 t의 크기와 같으면 -
-
true를 반환
-
-
-
거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
#include <bits/stdc++.h> using namespace std; class Solution { public: bool solve(string t, string s) { if(s == t) return true; int n = s.size(); int m = t.size(); int j = 0; for(int i = 0; i < n; i++){ if(t[j] == s[i]) j++; if(j == t.size()) return true; } return false; } }; main(){ Solution ob; string S = "abc", T = "adbrcyxd"; cout << ob.solve(S, T); }
입력
"abc", "adbrcyxd"
출력
1