⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1856046_ac_46ms_20k.cpp

📁 北大大牛代码 1240道题的原代码 超级权威
💻 CPP
字号:
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
char str[100];
char c[100];
int n;
int len1;


int cmp(const void *a, const void *b)
{

	if(*(char *)a - *(char *)b == ' ') return 1;
	if(*(char *)a>='a'&&*(char *)b>='a'||*(char *)a<='Z'&&*(char *)b<='Z')
		return (*(char *)a - *(char *)b);
	else 
		if(*(char *)a <= 'Z')
			return (*(char *)a-*(char *)b+' ');
		else 
            return (*(char *)a-*(char *)b-' ');
}

void permu(char ch[])
{
   int i;
   int len;
   
   char temp[100];
   
   len = strlen(ch);       
   if(len==1) {c[len1-1]=ch[0];puts(c);return ;}
   for(i = 0; i < len; i++)
    {
	  if(ch[i]==ch[i+1]) continue;
      strcpy(temp,ch);
      c[len1-len] = ch[i];
      strcpy(&ch[i],&ch[i+1]);
	  permu(ch);
      strcpy(ch,temp);
    }
   
   
}

void main()
{
  int N;
  
  scanf("%d",&N);
  while(N--)
  {
   scanf("%s",str);
   n = 0;
   qsort(str,strlen(str),sizeof(str[0]),cmp);
   len1 = strlen(str);
   permu(str);
   memset(c,'\0',sizeof(c));
  }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -