首页 > 试题广场 >

字符串旋转

[编程题]字符串旋转
  • 热度指数:7083 时间限制: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
头像 牛客题解官
发表于 2020-06-05 15:43:06
精华题解 字符串旋转 解析问题:对于输入字符串通过“;”拆分为字符串A和B。首先判断字符串A和B的长度是否相同,若不同直接输出flase,若相同进一步判断A是否可以通过旋转得到B: 暴力求解(一): 根据字符串A的长度L,通过循环从字符串下标1到L-2处拆分为两个字符串str1和str2,再将两者按照str2 展开全文
头像 白伟仝
发表于 2020-05-07 17:05:06
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String[] s = s 展开全文
头像 whoway
发表于 2020-12-11 12:31:56
scanf格式控制 #include<bits/stdc++.h> using namespace std; bool solve(string A, string B) { // write code here int lenA=A.size(); 展开全文
头像 刷代码的长颈鹿
发表于 2025-02-19 21:53:35
#include<iostream> #include<string> using namespace std; int main() { string AB, A, B; getline(cin, AB); A = AB.substr(0, AB. 展开全文
头像 永远年轻,永远热泪盈眶
发表于 2020-03-27 09:20:04
题目描述 字符串旋转:给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(都不为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’切割换位后得到‘zanyou’和B相 展开全文
头像 louis_ncu
发表于 2020-05-01 11:27:08
这道题类似于《编程之法》中的字符串旋转,也可以用双指针解决。还有,注意reverse(start, end)的用法。 时间复杂度:O(n^2) 空间复杂度:O(n) #include <iostream> #include <string> #include 展开全文
头像 cchangcs
发表于 2019-08-24 14:59:41
题目描述: 题目描述 字符串旋转: 给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(都不为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。 例如:如 展开全文
头像 张鹏201908190005840
发表于 2022-02-11 19:41:13
l= input().strip().split(';') def check_process(a,b): if len(a)>=2 and list(a).sort()==list(b).sort() : for i in range(1,len(a)): 展开全文