poj 1256(Anagram)
来源:互联网 发布:go 读写分离 mysql 编辑:程序博客网 时间:2024/06/04 18:37
这道题目确实花了我不少时间,因为好多基础知识我都忘了,大概还是当初没有掌握好的原因吧,连带传送地址的交换变量都给忘了,还有一些字符串函数,比如字符串比较函数,字符串复制函数。
qsort函数的用法也给忘了看来我记住的没多少啊 应该还是练得比较少吧,大二下了,该多刷刷题了
这道题就是一个全排列的问题,只是加了一些条件,A<a<B<b<C<c……排列必须按照从小到大的顺序输出,所以还得稍微改一下全排列的代码,每次确定一个数后得重新排序,把小的字母放前面,还好算法书上有全排列的代码,改改就可以做出来的,全排列主要就是递归,这个题用回溯大概会比较容易理解一些,改天再看回溯的方法吧,明天还有算法上机课,放代码,然后陪她聊会天就睡觉
#include<stdio.h>#include<stdlib.h>#include<string.h>void swap(char *a,char *b){char t;t=*a;*a=*b;*b=t;}int find(char b,char a){if(a <= 'Z' && a >= 'A' && b <= 'Z' && b >= 'A') return a < b; if(a <= 'z' && a >= 'a' && b <= 'z' && b >= 'a') return a < b; if(a <= 'Z' && a >= 'A' && b <= 'z' && b >= 'a') return a + 32 <= b; if(a<='z' && a >='a' && b <= 'Z' && b >= 'A') return a < (b + 32); }int cmp(const void *a,const void *b){ return find(*(char *)a,*(char *)b);}void perm(char a[],int k,int m){int c[100];memset(c,0,sizeof(c));if(k==m) printf("%s\n",a);else{for(int i=k;i<=m;i++){ char p[20]; strcpy(p,a); if(a[i]==a[k]&&i!=k)continue;if(c[a[i]-65])continue;swap(&a[k],&a[i]);qsort(a+k+1,m-k,sizeof(a[0]),cmp);if(k!=i)c[a[k]-65]=1;perm(a,k+1,m);a=p;}}}int main(){int n,m;char a[20];scanf("%d",&n);while(n--){memset(a,'\0',sizeof(a));scanf("%s",a);m=strlen(a);qsort(a,m,sizeof(a[0]),cmp);perm(a,0,m-1);}}
0 0
- poj 1256(Anagram)
- POJ 1256 Anagram(next_permutation全排列)
- POJ 题目1256 Anagram(next_permutation)
- POJ 1256 Anagram
- POJ 1256 Anagram
- poj 1256 Anagram
- poj 1256 Anagram
- POJ 1256 Anagram
- poj 1256 Anagram
- poj 1256 Anagram
- poj 1256 Anagram
- Anagram poj 1256
- POJ - 1256 Anagram
- 7 POJ 1256 Anagram
- poj 1256 Anagram
- POJ 1256:Anagram
- POJ 1256 Anagram
- POJ - 1256 Anagram
- char* ,char[],指针与数组
- Sicily 1215. 脱离地牢
- 什么是流利语法Fluent Syntax
- AIX几种 IO 类型概念的介绍
- 使用 CXF 做 webservice 简单例子
- poj 1256(Anagram)
- JAVA继承关系中静态代码块、非静态代码块的执行顺序
- ASIHTTPRequest iOS7下内存泄漏问题解决记录
- Serializable拙见
- Python类里的__init__方法函数,Python类的构造函数
- C#实现MD5算法
- Search for a Range
- 【VC疑难】Visual Studio has encountered an exception.This may be caused by an extension.
- 141.Linked List Cycle