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