1. 程式人生 > 其它 >Leetcode 1071. 字串的最大公因子

Leetcode 1071. 字串的最大公因子


對於字串 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;
    }
};