天天看點

程式員面試金典 - 面試題 01.09. 字元串輪轉

1. 題目

字元串輪轉。給定兩個字元串s1和s2,請編寫代碼檢查s2是否為s1旋轉而成(比如,waterbottle是erbottlewat旋轉後的字元串)。

示例1:
 輸入:s1 = "waterbottle", s2 = "erbottlewat"
 輸出:True
 
示例2:
 輸入:s1 = "aa", "aba"
 輸出:False
 
提示:
字元串長度在[0, 100000]範圍内。
說明:
你能隻調用一次檢查子串的方法嗎?           

複制

來源:力扣(LeetCode)

連結:https://leetcode-cn.com/problems/flipped-string-lcci

著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • s1一定在s2+s2中
  • s2一定在s1+s1中
class Solution {
public:
    bool isFlipedString(string s1, string s2) {
    	if(s1.size() != s2.size())
    		return false;
    	// return (s1+s1).find(s2) != string::npos;//也可以
    	return (s2+s2).find(s1) != string::npos;
    }
};           

複制

程式員面試金典 - 面試題 01.09. 字元串輪轉