leetcode-每日一题2022.4.7 旋转字符串

题目

力扣

思路 模拟

每次把最左边的字符移到最右边,判断两字符串是否相等。

代码

class Solution {
public:
    bool rotateString(string s, string goal) {
        if(s.size() != goal.size()) return false;
        int n = s.size();
        string tmp = s;
        for(int i = 0; i < n; i++){
            tmp = tmp[n - 1] + tmp.substr(0,n - 1);
            if(tmp == goal)
                return true;
        }
        return false;
    }
};

思路 搜索子字符串

在字符串a+a中寻找是否有子字符串goal。

代码

class Solution {
public:
    bool rotateString(string s, string goal) {
        return s.size() == goal.size() && (s + s).find(goal) != string::npos;
    }
};

你可能感兴趣的:(leetcode,leetcode,算法)