惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
Last Week in AI
Last Week in AI
The Cloudflare Blog
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
S
SegmentFault 最新的问题
量子位
大猫的无限游戏
大猫的无限游戏
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
I
InfoQ
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Engineering at Meta
Engineering at Meta

博客园 - GwQ

微软面试智力题(5) 微软面试智力题(4) 微软面试智力题(3) 微软面试智力题(2) 微软面试智力题(1) 微软面试技术题(0) 微软面试技术题(5) 微软面试技术题(22) 微软面试技术题(21) 微软面试技术题(20) 微软面试技术题(19) 微软面试技术题(18) 微软面试技术题(17) 微软面试技术题(16) 微软面试技术题(15) 微软面试技术题(14) 微软面试技术题(13) 微软面试技术题(12) 微软面试技术题(11)
微软面试技术题(4)
GwQ · 2006-06-18 · via 博客园 - GwQ

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

 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