首页 > 试题广场 >

旋转字符串

[编程题]旋转字符串
  • 热度指数:12974 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
字符串旋转:
给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(可以为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。

例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’切割换位后得到‘zanyou’和B相同,返回true。
再如:如果A=‘abcd’,B=‘abcd’,A切成‘abcd’和''(空串),换位后可以得到B,返回true。

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

输入

"youzan","zanyou"

输出

true
示例2

输入

"youzan","zyouan"

输出

false
示例3

输入

"nowcoder","nowcoder"

输出

true
头像 1号牛客
发表于 2020-09-06 16:02:20
还有这么美妙的解法😄思路之一:1、假如 A="abcd" 则 A+A = "abcdabcd"2、如果B 满足 题目的条件,则B 一定属于 A+A 里面的一个子串 import java.util.*; public class Solution { /** * 旋转字符串 展开全文
头像 暮雪千年长
发表于 2021-10-06 00:28:37
import java.util.*; public class Solution { /** * 旋转字符串 * @param A string字符串 * @param B string字符串 * @return bool布尔型 * 展开全文
头像 君无颜
发表于 2022-01-24 15:13:31
学习还是要灵活些,两种方法,巧妙与粗暴的对比 暴力解法 思路:一个一个挨着拼出来比,遇到合适的return true,到最后都没有,就return false class Solution { public: bool solve(string A, string B) { 展开全文
头像 小洋芋热爱NLP
发表于 2021-02-06 22:16:05
- 1、题目描述: - 2、题目链接:https://www.nowcoder.com/practice/80b6bb8797644c83bc50ac761b72981c?tpId=196&tqId=37172&rp=1&ru=%2Factivity%2Foj&qru 展开全文
头像 小白牛牛01
发表于 2022-06-26 23:02:15
import java.util.*; public class Solution { /** * 旋转字符串 * @param A string字符串 * @param B string字符串 * @return bool布尔型 * 展开全文
头像 超级码力233
发表于 2020-11-26 18:50:46
旋转字符串 题目链接 Solution 直接模拟即可。枚举旋转了几位,然后求出旋转后的字符串,比较是否与原字符串相同。注意一下,如果两个字符串长度不同,无论如何旋转都不可能相同的,直接返回false。 Code class Solution { public: bool solve(stri 展开全文
头像 触初
发表于 2022-04-28 22:51:28
import java.util.*; public class Solution {     /**      * 旋转字符串      * @param A string字符串    &nbs 展开全文
头像 萨根的喷火龙
发表于 2021-10-22 08:30:14
长度不一样就不可能是切割后一样; 判断是不是旋转的,就是判断B是不是在A+A中。比如A="yihou"B="houyi,A+A="yihouyihou",中间就有旋转的houyi,包括了B,所以是,返回True. class Solution: def solve(self , A , B 展开全文
头像 whoway
发表于 2020-12-11 12:08:05
class Solution { public: /** * 旋转字符串 * @param A string字符串 * @param B string字符串 * @return bool布尔型 */ bool solve(stri 展开全文
头像 棒棒糖🍭201906101800876
发表于 2021-07-21 15:47:51
nc114. 旋转字符串 题意 给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(可以为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。 1. 暴力做法 枚举A的每一位,把前半部分和后半部分拆分,再反过来连接,判断是不是等于B。 class 展开全文

问题信息

上传者:牛客332641号
难度:
56条回答 8913浏览

热门推荐

通过挑战的用户

查看代码