生成字符串的全排列
void permute(string s) { sort(s.begin(),s.end()); cout<<s<<endl; while(next_permutation(s.begin(),s.end())) cout<<s<<endl; }
上麵的是標準庫的迭代版本。
下麵的是遞歸版本
void permute(string s,unsigned k) { if (k == s.length()-1) { cout<<s<<endl; } for (unsigned i = k;i<s.length();++i) { swap(s[i],s[k]); permute(s,k+1); } }
最後更新:2017-04-02 06:51:23