字符串的排列
#include<iostream> #include<string> using namespace std; void swap(char& a,char& b) { if( a == b) return; char temp = a; a = b; b = temp; } void permutation(string& ptr, int i); void permutation(string& s) { if(s.size() <= 0) return; permutation(s, 0); } void permutation(string& ptr, int i) { if(i >= ptr.size()) { cout << ptr << endl; } for(int j = i; j != ptr.size(); ++j) { if(ptr[i] == ptr[j] && i != j) // 此处避免相同字符 continue; swap(ptr[i],ptr[j]); { permutation(ptr,i+1); } swap(ptr[i],ptr[j]); } } int main() { string s; cin >> s; permutation(s); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步