Leetcode 1071. chaîne de GCD

Idées: grand frère a vu une solution à un problème, très intelligent.

Tout d'abord, str2 str1 et doit être de la même configuration de la sous-chaîne, mais un nombre différent de sous-chaînes seulement, si str1 + str2 == str2 + str1. Dans le cas contraire satisfaire l'équation ci-dessus, il ne représente pas la même sous-chaîne.

Ensuite, en supposant que la longueur m est configuré ch1, ch2 est la longueur de n. Ensuite, la longueur maximale de la chaîne doit être capable de diviser simultanément par m, n. En fait, la longueur maximale est pgcd (m, n).

class Solution {
public:
    string gcdOfStrings(string str1, string str2) {
        int len1=str1.size(),len2=str2.size();
        if(str2+str1!=str1+str2) return "";
        return str1.substr(0,gcd(len1,len2));
    }
    int gcd(int a,int b)
    {
        if(b==0) return a;
        return gcd(b,a%b);
    }
};

 

Publié 417 articles originaux · louange gagné 172 · vues 220 000 +

Je suppose que tu aimes

Origine blog.csdn.net/qq_40774175/article/details/104811252
conseillé
Classement