📅  最后修改于: 2023-12-03 15:13:45.841000             🧑  作者: Mango
本程序可以检查两个字符串是否可以通过将其中一个字符串向右旋转2个位置而得到另一个字符串。例如,字符串"abcd"可以通过将字符串"cdab"向右旋转2个位置而得到。
字符串旋转2个位置,相当于将前面的2个字符移动到字符串末尾。所以,我们可以先将第一个字符串前两个字符移动到末尾,然后比较两个字符串是否相等。如果相等,则说明可以通过旋转2个位置得到另一个字符串。
#include <iostream>
#include <string>
using namespace std;
bool checkRotation(const string& str1, const string& str2) {
if (str1.length() == str2.length()) {
string temp = str1.substr(0, 2) + str1.substr(2) ;
return (temp == str2);
}
return false;
}
int main() {
string str1, str2;
cout << "Enter the first string: ";
getline(cin, str1);
cout << "Enter the second string: ";
getline(cin, str2);
if (checkRotation(str1, str2)) {
cout << "The second string can be obtained by rotating the first string by 2 positions.";
} else {
cout << "The second string cannot be obtained by rotating the first string by 2 positions.";
}
return 0;
}
checkRotation
函数用于检查两个字符串是否可以通过旋转2个位置而得到。main
函数调用checkRotation
函数,输出检查结果。Enter the first string: abcdefg
Enter the second string: fgabcde
The second string can be obtained by rotating the first string by 2 positions.
本程序演示了如何检查两个字符串是否可以通过旋转2个位置得到相同的字符串。程序使用了字符串的substr函数来实现字符串移位,使用了string类提供的比较运算符来比较两个字符串是否相等。