cre*_*orn 2 c++ stl permutation
我试图找到给定字符列表的所有排列,在这种情况下'eta'
std::string s="eta";
do
{
std::cout<<s<<std::endl;
}while(std::next_permutation(s.begin(),s.end()));
Run Code Online (Sandbox Code Playgroud)
我将得到以下输出:
eta
tae
tea
Run Code Online (Sandbox Code Playgroud)
但如果我改变了一件事
std::string s="eta";
Run Code Online (Sandbox Code Playgroud)
至
std::string s="aet";
Run Code Online (Sandbox Code Playgroud)
输出现在变成了
aet
ate
eat
eta
tae
tea
Run Code Online (Sandbox Code Playgroud)
这是我期望的正确排列数; 因此,当"加扰"字符串按字母顺序排列时,显然会出现一些不同的情况?
或者这可能是造成这种歧义的原因?
next_permutation将序列更改为所有排列的排序顺序中的下一个排列.因此,如果你从一个不是词典顺序中的第一个排列开始,那么在next_permutation返回false之前,你将只得到所有排列的一部分.
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |