通过代码:
#include <cstdio> using namespace std; struct Qvector { int tail; char q[100001]; Qvector() { tail = -1; } char at(int n) { return q[n]; } void push_back(char a) { q[++ tail] = a; } void pop_back() { tail --; } } n; char s[100001]; bool avl[10]; int len; void f(char a, int k) { n.push_back(a); if(k == len) { for(int i = 0; i < k; i ++) printf("%c", n.at(i)); printf("\n"); n.pop_back(); return; } for(int i = 0; i < len; i ++) if(avl[i] == true) { avl[i] = false; f(s[i], k + 1); avl[i] = true; } n.pop_back(); } int main() { for(int i = 0; i < 10; i ++) avl[i] = true; scanf("%s", s); for(; s[len] >= 'a' && s[len] <= 'z'; len ++); for(int i = 0; i < len; i ++) { avl[i] = false; f(s[i], 1); avl[i] = true; } return 0; }
1199:全排列
最新推荐文章于 2024-02-17 19:05:48 发布