C++程序 检查给定数字的所有旋转是否大于或等于给定数字
给定整数 x ,任务是查找是否对元素的每个 k 周期移位都产生大于或等于相同元素的数字。
整数 x 的 k 循环移位是一个函数,它删除 x 的最后 k 个数字,并将它们插入开始。
例如,k 循环移位 123 是 k = 1 和 231的 312 。如果满足给定条件则打印 Yes 否则打印 No 。
例子:
输入: x = 123
输出: Yes
123 的 k 循环移位是 k=1 时的 312 和 k=2 时的231。
312 和 231 都大于 123。
输入: 2214
输出: No
当 k=2 时,2214 的 k 循环移位是 1422,小于 2214。
做法: 简单地查找数字的所有可能的 k 循环移位,并检查它们是否全部大于给定的数字。
以下是上述方法的实现:
输出:
时间复杂度: O(N 2 ),其中 N 表示给定字符串的长度。
程序的时间复杂度为 O(N 2 ) ,因为首先它运行一个循环来遍历字符串,然后在其中使用子字符串函数。
辅助空间: O(1),不需要额外的空间,因此为常数。