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

문자열이 서로 회전하는지 확인하는 프로그램?

<시간/>

여기서 우리는 두 문자열이 서로 회전하는지 여부를 알 수 있는 하나의 프로그램을 볼 것입니다. 문자열의 회전은 −

와 같습니다.

두 문자열이 S1 ='HELLO', S2 ='LOHEL'이라고 가정하면 서로 회전합니다. HELLO를 왼쪽으로 세 위치 회전하면 LOHEL이 됩니다.

이 문제를 해결하기 위해 첫 번째 문자열을 자신과 연결한 다음 연결된 문자열에 두 번째 문자열이 있는지 확인합니다. 따라서 HELLO의 경우 HELLOHEL이 됩니다. 봐라. 그런 다음 이 연결된 문자열에 LOHEL이 포함됩니다. [안녕하세요].

알고리즘

isRotation(str1, str2)

begin
   if lengths of str1, and str2 are not same then return false;
   temp := concatenate str1 with str1 itself
   if temp contains str2, then
      return true
   otherwise return false
end

예시

#include<iostream>
using namespace std;
bool isRotation(string str1, string str2){
   if(str1.length() != str2.length())
      return false;
   string con_str = str1 + str1;
   if(con_str.find(str2) != string::npos){
      return true;
   } else {
      return false;
   }
}
main() {
   string str1, str2;
   cout << "Enter two strings: ";
   cin >> str1 >> str2;
   if(isRotation(str1, str2)){
      cout << "Two strings are rotation of each other";
   } else {
      cout << "Two strings are not rotation of each other";
   }
}

출력

Enter two strings: STACK CKSTA
Two strings are rotation of each other