두 개의 문자열 s와 t가 있다고 가정합니다. s가 t의 회전인지 여부를 확인해야 합니다. 즉, s를 회전한 후 t를 얻을 수 있습니까?
따라서 입력이 s ="helloworld" 및 t ="worldhello"와 같으면 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
s0의 크기가 s1의 크기와 같지 않으면 -
-
거짓을 반환
-
-
s :=s0 s0 연결
-
s1이 s에 있으면 true를 반환하고 그렇지 않으면 0
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool solve(string s0, string s1) {
if(s0.size() != s1.size())
return false;
string s = s0 + s0;
return s.find(s1) != string::npos;
}
};
int main(){
Solution ob;
cout << (ob.solve("helloworld", "worldhello"));
} 입력
"helloworld", "worldhello"
출력
1