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; } };
浙公网安备 33010602011771号