我試着去找到一個給定角色列表中的所有排列,在這種情況下,「埃塔」next_permutation返回奇怪的結果
std::string s="eta";
do
{
std::cout<<s<<std::endl;
}while(std::next_permutation(s.begin(),s.end()));
,我會得到下面的輸出:
eta
tae
tea
,但如果我改變一件事
std::string s="eta";
到
std::string s="aet";
輸出現在變成
aet
ate
eat
eta
tae
tea
這是我的排列期望的正確數量; 因此,當'scrambled'字符串按字母順序排列時,顯然會有不同的發生。
或者什麼可能是這種歧義的原因?
在第一行後面添加'std :: sort(s.begin(),s.end());'。 – stefan