uva-10252-Common Permutation
来源:互联网 发布:淘宝优惠券网 编辑:程序博客网 时间:2024/03/29 22:05
题目大意:
给你两个字符串,求第一个字符串的某一个排列和第二个字符串的最长的公共子串。要求按字典顺序输出公共子串。
算法分析:
由于是一个串的某个排列(任意顺序的),实际上就是求两个字符串相同的字符的个数,并且按照顺序输出即可。我的做法是将两个字符串映射到26个字符的数组中,数组中放的是字符出现的次数,然后比较两个字符串的映射数组,直接输出较少的那个字符的次数(不为0)。
代码:
#include<stdio.h>
#include<string.h>
char str1[1001],str2[10001];
int a1[27],a2[27];
void init()
{
int len1,len2;
int i;
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
len1=strlen(str1);
len2=strlen(str2);
for(i=0;i<len1;i++)
a1[str1[i]-'a']++;
for(i=0;i<len2;i++)
a2[str2[i]-'a']++;
}
int min(int m,int n)
{
return m<n?m:n;
}
int main()
{
int i,j;
while(1)
{
memset(str1,0,sizeof(str1));
memset(str2,0,sizeof(str2));
if(gets(str1)==NULL)
break;
gets(str2);
init();
for(i=0;i<26;i++)
{
if(a1[i]!=0&&a2[i]!=0)
{
for(j=0;j<min(a1[i],a2[i]);j++)
printf("%c",i+'a');
}
}
printf("/n");
}
return 0;
}
思考:
此题目有点技巧,但不是太难。
- uva-10252-Common Permutation
- UVa 10252 Common Permutation
- uva 10252Common Permutation
- Uva 10252 - Common Permutation
- UVa 10252 - Common Permutation
- UVA--10252 Common Permutation
- Uva OJ 10252 - Common Permutation
- 6 UVA 10252 Common Permutation
- UVa Problem Solution: 10252 - Common Permutation
- PC/UVa 110303/10252 Common Permutation
- uva 10252 - Common Permutation 字符串水题
- Uva 10252 Common Permutation 公共排序
- UVa 10252 Common Permutation (water ver.)
- UVa Problem 10252 Common Permutation (公共排列)
- 字符串 UVa 10252 Common Permutation (公共排列)
- 10252 - Common Permutation
- Common Permutation
- (字符串的处理4.7.14)UVA 10252 Common Permutation(寻找两个字符串中的共同字符&&按字典序输出)
- 局域网中网络邻居响应慢的一些解决方法
- 浴室的淋浴坏了?(项目经理篇)
- 传智播客学习之存储过程与游标
- 传智播客学习之JDBC基础
- VC读取配置文件
- uva-10252-Common Permutation
- 电子信息就业分析
- 高性能网站法则 -- 资源缓存和版本管理
- 计算机名修改SQL SERVER2005 连接失败 的原因
- 理解复杂的C/C++声明 const, typedef , 函数指针(转贴)
- 就是那么一乐
- 成败论英雄
- 经典笑话:洞房花烛夜(电脑版)
- Java 同步机制浅谈