C++程序 检查字符串是否可以通过旋转另一个字符串2个位置获得
给定两个字符串,任务是找出一个字符串是否可以通过旋转另一个字符串两个位置而得到。
范例:
输入: string1 = “amazon”,string2 = “azonam”
输出: Yes
//旋转逆时针
输入: string1 =“amazon”,string2 =“onamaz”
输出: Yes
//旋转顺时针
1-只有两种情况:
a)顺时针旋转
b)逆时针旋转
2-如果是顺时针旋转,那么元素右移。
因此,检查字符串2的子字符串[2….len-1]与字符串2的子字符串[0,1]连接起来是否等于字符串1。
如果是,则返回true。
3-否则,检查它是逆时针旋转,即元素向左移动。
因此,检查子串[len-2,len-1]与子串[0….len-3]的组合是否使它等于字符串1。
然后返回true。
4-否则,返回false。
以下是上述方法的实现。
输出:
时间复杂度 :O(n),其中n是给定字符串的大小。