牛客题霸 [旋转字符串]C++题解/答案

题目描述

字符串旋转:
给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(都不为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。
例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’切割换位后得到‘zanyou’和B相同返回true。

题解

既简单,我们就截取字符串前一位,然后粘到最后,看是否和B一样
按照题意,滚动 的A是存在一张状态等于B的

代码:

class Solution {
   
public:
    /** * 旋转字符串 * @param A string字符串 * @param B string字符串 * @return bool布尔型 */
    bool solve(string A, string B) {
   
        // write code here
        for(int i=0;i<A.size()-1;i++)
        {
   
            if(A.substr(i,A.size()-i)+A.substr(0,i)==B){
   
                return true;
            }
      
        }
        return false;

    }
};