我试着去找到一个给定角色列表中的所有排列,在这种情况下,“埃塔”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