首页 > 试题广场 >

字符串旋转

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

输入描述:
2个不为空的字符串(说明:输入一个字符串以英文分号";"分割为2个字符串)
例如:youzan;zanyou 即为A=‘youzan’,B=‘zanyou’


输出描述:
输出true或false(表示是否能按要求匹配两个字符串)
示例1

输入

youzan;zanyou

输出

true
示例2

输入

youzan;zyouan

输出

false
package main

import (
    "fmt"
    "strings"
)

func main() {
    var s string
    fmt.Scan(&s)
    arr:=strings.Split(s,";")
    var flag bool
    if len(arr[0])==len(arr[1]){
        n:=len(arr[0])-1
        for n>0{
            if arr[0][n:]+arr[0][:n]==arr[1]{
                flag=true
                break
            }
            n--
        }
    }
    fmt.Print(flag)
}

发表于 2023-03-18 02:20:37 回复(0)