首页 > 试题广场 >

旋转字符串(二)

[编程题]旋转字符串(二)
  • 热度指数:1587 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
字符串旋转:
给定两个长度为n字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(不能为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。
例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’切割换位后得到‘zanyou’和B相同,返回true。
再如:如果A=‘abcd’,B=‘abcd’,无法切成两个非空串,使得A换位后可以得到B,返回false。

数据范围:A,B字符串长度满足,保证字符串中仅包含小写英文字母和阿拉伯数字
示例1

输入

"abcd","bcda"

输出

true
示例2

输入

"abcd","abcd"

输出

false
package main
import _"fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 旋转字符串
 * @param A string字符串 
 * @param B string字符串 
 * @return bool布尔型
*/
func solve( A string ,  B string ) bool {
    cnt:=0
    for {
        A=A[1:]+A[:1]
        cnt++
        if A==B{
            return true
        }
        if cnt+1>=len(A){
            return false
        }
    }
    return false
}

发表于 2023-03-11 00:34:53 回复(0)

问题信息

难度:
1条回答 2085浏览

热门推荐

通过挑战的用户

查看代码