poj 1318Word Amalgamation
题目链接:http://poj.org/problem?id=1318
/*题意:在字母乱序的单词里面找到字母相同的字典里面的单词*/
/*此题的主要思路是要将字符排序,然后找对应,如果相同,那么就将此按字典序将字母一样的单词输出,
本人觉得此题的关键的问题是要将字符排序,那么就会出现二维字符数组的排序问题,
二维字符数组排序有很多种方法(因为二维字符数组不能直接复制,所以不能直接用sort()排序),
1.可以用到结构体
2.指针
3.可以将二维的字符数组转化成一维的字符数组(以下代码就是用的这种方法)
代码优化:将待确定的字符直接用一维的字符数组,然后排序,直接与第一部分的单词相比较
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char str1[][],str2[][];
char tra1[][],tra2[][];
char temp[]; int cmp(const void *a,const void *b)
{
return(strcmp((char*)a,(char*)b));
} int main(){
int len1=,len2=; //计算str1与str2的长度
for(int i=;i<;i++){
cin>>str1[i];
if(str1[i][]=='X'){
break;
}
len1++;
}
qsort(str1,len1,sizeof(str1[]),cmp);
for(int i=;i<len1;i++){
strcpy(tra1[i],str1[i]); //复制
}
for(int i=;i<;i++){
cin>>str2[i];
strcpy(tra2[i],str2[i]); //复制
if(str2[i][]=='X'){
break;
}
len2++;
}
//将字符按照asc码的形式进行排序 for(int i=;i<len1;i++){
int len3=strlen(str1[i]);
strcpy(temp,tra1[i]);
sort(temp,temp+len3);
strcpy(tra1[i],temp);
// cout<<tra1[i]<<endl;
}
for(int i=;i<len2;i++){
int len4=strlen(str2[i]);
strcpy(temp,tra2[i]);
sort(temp,temp+len4);
strcpy(tra2[i],temp); }
//比较字符串是否相同
int num;
for(int i=;i<len2;i++){
num=;
for(int j=;j<len1;j++){
if(strcmp(tra2[i],tra1[j])==){
cout<<str1[j]<<endl;
num++;
}
if(j==len1-){
if(num==){
printf("NOT A VALID WORD\n");
}
printf("******\n");
}
}
}
return ;
}
poj 1318Word Amalgamation的更多相关文章
- poj 1318 Word Amalgamation
Word Amalgamation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9968 Accepted: 4774 ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
- POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治
The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22286 ...
- POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
随机推荐
- SSH三大框架整合步骤
Struts2:需要整合的第一个框架: 1.创建一个动态web项目 2.导入struts2必须的jar 放到 lib目录下 ,再 build path 添加web工程中 3.配置struts2的核心配 ...
- SQL Server本地连接不上
1.打开SQL Server 2014配置管理器 2.启动服务
- display、visibility、visible区别
标签的隐藏可以有三种:display.visibility.服务器控件的visible. 显然,这三者都能起到隐藏与显示的效果,但是用途确完全不一样,请看用法与区别: <div style=&q ...
- 移动端车牌识别sdk开发包(可下载)
移动端车牌识别是一项基于OCR识别的应用技术.移动端车牌识别过程主要包含五个步骤,其中包括图像采集.图像预处理.车牌定位.字符分割.字符识别.输出结果等一系列计算机算法运算, 第一步[图像采集]:此步 ...
- PHP面向对象摘要
一.面向对象的三种特性,分别是封装性,继承性和多态性. 1.封装性:封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体的实现细节,这就是封装思想. 2.继承性:继承性主要是描述 ...
- 【Arduino】使用LCD1602和DHT11制作温湿度显示器
材料: 1.DHT11 2.LCD1602 3.LCD1602 转接板 4.Arduino UNO 5.Arduino 传感器扩展版 那个Arduino UNO 我当初挑类个便宜的山寨货买,结果发来和 ...
- 诸葛马前课andoid app 应用
前段时间学了点安卓开发的知识,也在同时,陪家人看了<新闺蜜时代 >的后面几集,其中,周小北提到了诸葛马前课. 于是网上查了些资料,学习了一下马前课的计算方法,本着程序服务生活的原则,省去不 ...
- WPF 完美截图 <一>
最近比较懒,一直没继续,此处省略一万字,下面开始正题. 简单介绍下截图的思路: 核心是利用 public CroppedBitmap(BitmapSource source, Int32Rect so ...
- Java中断机制(interrupt)
中断线程 在 run() 方法中,如果语句执行到了最会一句,或是遇到 return 方法,或是方法中出现了没有被捕获的异常,run() 方法将会执行结束.在java中,Thread中的interrup ...
- [转载] Redis集群搭建最佳实践
转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...