日复一日

厚积薄发|跳跃的人生

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  28 随笔 :: 0 文章 :: 78 评论 :: 0 引用

公告

输出一个字符串所有排列。注意有重复字符。

 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 阅读(1711) 评论(16) 编辑 收藏