题目描述
如果一个字符串为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;
}