Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

차차 슬라이드 C++


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