두 개의 문자열 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