Leetcode 1071. 字串的最大公因子
阿新 • • 發佈:2022-05-19
對於字串 s 和 t,只有在 s = t + ... + t(t 自身連線 1 次或多次)時,我們才認定 “t 能除盡 s”。
給定兩個字串 str1 和 str2 。返回 最長字串 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, str2.length <= 1000
- str1 和 str2 由大寫英文字母組成
Code:
class Solution { public: bool isValidd(string s1,string s2,string s3) { string res=""; int cnt=0; for(int i=0;;i++) { res+=s1; if(res.length()>s2.length()) { return false; } if(res==s2) { cnt++; break; } } for(int i=0;;i++) { if(res.length()>s3.length()) { return false; } if(res==s3) { cnt++; break; } res+=s1; } return (cnt==2); } string gcdOfStrings(string str1, string str2) { string res=""; if(str1.length()>str2.length()) { for(int i=0;i<str2.length();i++) { string temp=str2.substr(0,i+1); // cout<<temp<<endl; if(isValidd(temp,str2,str1)) { if(temp.length()>res.length()) { res=temp; } } } } else { for(int i=0;i<str1.length();i++) { string temp=str1.substr(0,i+1); if(isValidd(temp,str1,str2)) { if(temp.length()>res.length()) { res=temp; } } } } // cout<<res<<endl; return res; } };