題目描述
如果一個字符串為str,把字符串的前面任意部分挪到后面形成的字符串交str的旋轉詞。比如str=“12345”,str的旋轉串有“12345”、“45123”等等。給定兩個字符串,判斷是否為旋轉詞。
輸入描述:
輸出包含三行,第一個兩個整數n和m(1 \leq n,m \leq10^5 )(1≤n,m≤10 ^5 ),分別表示兩個字符串的長度。第二行和第三行各輸入一個字符串。
輸出描述:
如果兩個字符串互為旋轉詞請輸出“YES”,否則輸出“NO”。
示例描述
#include<iostream>
#include<string>
using namespace std;int judge(string s1, string s2){string s;s = s1 + s1; //把第一個字符串加兩邊,如果加后的大串當中能找到第二個字符串就可以int pos = 0;pos = s1.find(s2);if (pos == -1){return 0;}else {return 1;}}int main()
{string s1;string s2;long len1 = 0;long len2 = 0;int ret = 0;cin >> len1;cin >> len2;cin >> s1;cin >> s2;len1 = s1.size();len2 = s2.size();if (len1 != len2){cout << "NO" << endl;}else{ret = judge(s1, s2);if (ret == 1)cout << "YES" << endl;elsecout << "NO" << endl;}return 0;
}