算法系列——字符串旋转

Posted BridgeGeorge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列——字符串旋转相关的知识,希望对你有一定的参考价值。

题目

题目链接:https://leetcode-cn.com/problems/rotate-string/
字符串旋转:
给定两字符串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字符串长度满足 n \\le 1000n≤1000,保证字符串中仅包含小写英文字母和阿拉伯数字
进阶: 时间复杂度 O(n)O(n),空间复杂度 O(n)O(n)

题解

1.模拟法 从起始点不断旋转 判断 最终字符串是否相等。
2. 如果B 满足条件,则B 一定属于 A+A 里面的一个子串

解答


 public boolean solve (String A, String B) 
        // write code here
        return A.length()==B.length()&& (A+A).contains(B);
    

以上是关于算法系列——字符串旋转的主要内容,如果未能解决你的问题,请参考以下文章

算法系列——字符串旋转

算法系列——字符串旋转

算法系列——寻找旋转排序数组中的最小值

算法系列——寻找旋转排序数组中的最小值

算法系列——寻找旋转排序数组中的最小值(剑指offer)

算法系列——寻找旋转排序数组中的最小值(剑指offer)