Sunday, November 4, 2012

BackTracking Algorithm (Basic Permutation)


#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
#define siz 20

char as[siz];
vector <char> vec;
int n,color[siz]={0};

void Permutation(){
    if(vec.size()==n){
        for(int i=0;i<n;i++)
            printf("%c",vec[i]);
        puts("");
    }
    for(int i=0;i<n;i++){
        if(!color[i]){
            vec.push_back(as[i]);
            color[i]=1;
            Permutation();
            vec.pop_back();
            color[i]=0;
        }
    }
}

int main()
{
    while(scanf("%s",&as)==1){
        n=strlen(as);
        Permutation();
    }
    return 0;
}


No comments:

Post a Comment