其實對這種字串排序還是不怎麼熟,是把工具套一套解出來的。
步驟:
1.對字串進行排序
2.next_permutation
程式碼:
#include <iostream> #include <algorithm> using namespace std; int main() { int n; cin>>n; getchar(); while(n--) { string s; getline(cin,s); int len=s.size(); sort(s.begin(),s.end()); do{ cout<<s<<endl; }while(next_permutation(s.begin(),s.end())); cout<<endl; } return 0; }
參考:https://stackoverflow.com/questions/17006808/find-all-permutations-of-a-string-in-c
next_permutation是字典序較大的放右邊,而與之相反的則是prev_permutation。
相關題目:d703: SOS ~~~
沒有留言:
張貼留言