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);
}
};