日复一日

厚积薄发|跳跃的人生

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
输出一个字符串所有排列。注意有重复字符。

 1char[] p;
 2void perm(char s[], int i, int n){
 3 int j;
 4 char temp;
 5 for(j=0;j<n;++j){
 6  if(j!=0 && s[j]==s[j-1]);
 7  elseif(s[j]!='@'){
 8   p[i]=s[j];
 9   s[j]='@';
10   if(i==n-1){
11    p[n]='\0';
12    printf("%s", p);
13   }
else{
14    perm(s,i+1,n);
15   }

16   s[j]=p[i];
17  }

18 }

19}
1void main() {
2  char s[N];
3  sort(s);
4  perm(s,0,strlen(s));
5}

6
posted on 2006-06-18 21:17  GwQ  阅读(2068)  评论(16)    收藏  举报