LeetCode-字符串轮转

算法一:

遍历字符串s1,每次取当前元素之前的字串head和之后的字串tail,判断tail+head是否为s2即可。

class Solution {
public:
    bool isFlipedString(string s1, string s2) {
            int len1= s1.length();
            int len2 = s2.length();
            if(len1!=len2)
            {
                return false;
            }
            else if(len1==0&&len2==0){
                return true;
            }
            for(int i=0;i<len1;i++){
                string h = s1.substr(0,i);
                string t = s1.substr(i,len1-i);
                if(t+h==s2){
                    return true;
                }
            }
            return false;
    }
};

 

算法二:

s2与自身拼接后再用find()函数查找新字符串中是否包含s1即可。

class Solution {
public:
    bool isFlipedString(string s1, string s2) {
            int len1= s1.length();
            int len2 = s2.length();
            if(len1!=len2)
            {
                return false;
            }
            string s3 = s2+s2;
            if(s3.find(s1)!=s3.npos){
                return true;
            }
            return false;
    }
};

 

posted @ 2021-03-06 09:40  徐不二  阅读(74)  评论(0)    收藏  举报