C++程序 检查是否可以通过旋转另一个字符串d个位置来获得字符串
给定两个字符串 str1 和 str2 ,以及一个整数 d ,任务是检查是否可以通过将 str1 旋转 d 个位置(向左或向右)来获取 str2 。
例子:
输入: str1 = “abcdefg”, str2 = “cdefgab”, d = 2
输出: Yes
将str1向左旋转2个位置。
输入: str1 = “abcdefg”, str2 = “cdfdawb”, d = 6
输出: No
方法: 解决相同问题的方法已在此处讨论。在本文中,反向算法用于在O(n)时间内向左和向右旋转字符串。如果 str1 的任何一个旋转等于 str2 ,则打印 Yes ,否则打印 No 。
下面是上述方法的实现:
输出:
时间复杂度: O(n),其中n表示给定字符串的大小。
辅助空间: O(n),其中n表示给定字符串的大小。