劍指offer第二十七題【字串的排列】c++實現
阿新 • • 發佈:2019-02-12
class Solution { public: vector<string> vec; bool isSwap(string str,int k,int i){ for(int j=k;j<i;j++){ if(str[j]==str[i]){ return false; } } return true; } void func(string str,int k){ if(k==str.size()-1){ vec.push_back(str); return ; } for(int i=k;i<str.size();i++){ if(isSwap(str,k,i)){ swap(str[k],str[i]); func(str,k+1); swap(str[k],str[i]); } } } vector<string> Permutation(string str) { if(str.size()==0){ return vec; } func(str,0); sort(vec.begin(),vec.end()); return vec; } };