J'utilise la chaîne comme valeur de clé dans la carte et en essayant de personnaliser la fonction de comparaison. Lorsque j'ai personnalisé la fonction de comparaison en comparant la longueur des chaînes, la carte ne parvient pas à indiquer les différentes chaînes de même taille. Le code est aussi suivi:chaîne comme clé dans la carte, personnalisé la fonction de comparaison
class Solution {
public:
int findLUSlength(vector<string>& strs) {
if(strs.size() < 2) return -1;
auto cmpByStringLength = [](const string &s1, const string &s2)->bool
{
return s1.size() < s2.size();
};
map<string, int, decltype(cmpByStringLength)> mpstringcount(cmpByStringLength);
for(int i = 0; i < strs.size(); i++)
mpstringcount[strs[i]]++;
for(auto itmp = mpstringcount.begin(); itmp != mpstringcount.end(); itmp++)
{
cout << "itmp->first: " << itmp->first << endl;
}
return -1;
}
};
Si mes strs d'entrée est ["aba","cdc","eae","abcd"]
, le code juste sortie: "abcd"
et "aba"
.
Comprendre "ceci"? Comprendre quoi? –