LeetCode 1071. 字符串的最大公因子(字符串的最大公约数)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1071. 字符串的最大公因子(字符串的最大公约数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
對于字符串 S 和 T,只有在 S = T + … + T(T 與自身連接 1 次或多次)時,我們才認定 “T 能除盡 S”。
返回字符串 X,要求滿足 X 能除盡 str1 且 X 能除盡 str2。
示例 1: 輸入:str1 = "ABCABC", str2 = "ABC" 輸出:"ABC"示例 2: 輸入:str1 = "ABABAB", str2 = "ABAB" 輸出:"AB"示例 3: 輸入:str1 = "LEET", str2 = "CODE" 輸出:""提示: 1 <= str1.length <= 1000 1 <= str2.length <= 1000 str1[i] 和 str2[i] 為大寫英文字母來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/greatest-common-divisor-of-strings
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 輾轉相除
class Solution { public:string gcdOfStrings(string s1, string s2) {while(s1 != s2){if(s1.size() > s2.size())swap(s1,s2);//保證s2長if(s2.find(s1) != 0)//首位必須一樣,對齊return "";s2 = s2.substr(s1.size());//在s2找到了s1,把s2前面的s1部分砍掉}return s1;} }; class Solution { public:string gcdOfStrings(string str1, string str2) {if(str1+str2 != str2+str1)//充分必要條件return "";return str1.substr(0,__gcd(str1.size(),str2.size()));//c++內置gcd} }; class Solution { public:string gcdOfStrings(string str1, string str2) {if(str1+str2 != str2+str1)return "";return str1.substr(0,gcd(str1.size(),str2.size()));}int gcd(int a, int b){ //求最大公約數int r;while(b){r = a%b;a = b;b = r;}return a;} };總結
以上是生活随笔為你收集整理的LeetCode 1071. 字符串的最大公因子(字符串的最大公约数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1338. 数组大小减
- 下一篇: LeetCode 1013. 将数组分成