UVA - 123 Searching Quickly
2016-07-13 14:12
344 查看
UVA - 123 Searching Quickly
题目大意:给一些要忽略的单词,这些单词以外都是关键字,然后给你若干个标题。要你以这些关键字进行排序(当一个标题内存在多个关键字要以每个关键字都参与排序),最后输出。解题思路: 定义一个结构体用来存放单个单词和他所在的标题位置,然后将这个结构体按字典序排序,相同时按标题从小到大排序即可。将标题的单个单词抓取到结构体即可,然后就是输出时把单词大写输出就好
#include <cstdio> #include <cstring> #include <algorithm> #include <cstdlib> struct B{ char a[1000]; int b; }b[1000]; int cmp (const void *a, const void *b) { if ( strcmp((*(B *)a).a,(*(B*)b).a) != 0 ) return strcmp((*(B *)a).a,(*(B*)b).a); else return ( (*(B *)a).b - (*(B *)b).b); } int main() { char c[1000][1000]; char a[1000][1000]; char d[1000][1000]; int flag; scanf ("%s", c[0]); int tt; for (int i = 1; strcmp(c[i-1], "::") != 0; i++) { scanf("%s", c[i]); tt = i; } int t = 0; int s = 0; getchar(); while (gets(a[t])) { for (int i = 0; i < strlen(a[t]); i++) if (a[t][i] >= 'A' && a[t][i] <= 'Z') a[t][i] += 32; int cc = 0; for (int i = 0; i < strlen(a[t]); i++) { if (a[t][i] == ' ') { b[s].b = t; s++; cc = 0; continue; } b[s].a[cc] = a[t][i]; cc++; if ( i == (strlen(a[t]) - 1) ) { b[s].b = t; s++; } } t++; } qsort(b, s, sizeof(b[0]), cmp); int aa[10000][100]; memset(aa, 1, sizeof(aa)); for (int i = 0; i < s; i++) { flag = 1; for (int j = 0; j < tt ; j++) { if (strcmp(b[i].a, c[j]) == 0) flag = 0; } if (flag ) { int ccc = b[i].b; strcpy(d[ccc], a[ccc]); for (int j = 0; j < strlen(a[ccc]); j++) { if (a[ccc][j] == b[i].a[0] && aa[ccc][j]) { for (int k = 0; k < strlen(b[i].a); k++) { flag = 0; if (a[ccc][j+k] == b[i].a[k]) flag = 1; else break; if ( k == strlen (b[i].a) - 1 ) if (a[ccc][j+k+1] <= 'z' && a[ccc][j+k+1] >= 'a') flag = 0; } if (flag && aa[ccc][j]) { for (int k = 0; k < strlen(b[i].a); k++) { d[ccc][j] -= 32; aa[ccc][j] = 0; j++; } j--; break; } } } printf("%s\n", d[ccc]); } } }
相关文章推荐
- 一些常用的UI控件
- vSphere 6.0: remove partitions from existing storage devices via UI
- android studio 报Error:failed to find Build Tools revision 23.0.0 rc2
- Lesson 6:分支语句和逻辑运算符
- easyui中combobox仅允许使用当前数据值处理
- Kafka connect的offset commit机制
- 日本UX站点Uxmilk.jp对Mockplus的介绍 - 简洁快速的原型图设计工具Mockplus使用指南
- jd-gui在Ubuntu上打不开
- Incorrect string value: '\xE6\x9B\xB9\xE5\x86\xAC.'
- UI开发学习指南
- [LeetCode] Guess Number Higher or Lower 猜数字大小
- UE4源码分析1-下载源码
- 为啥可以在非ui线程也可以更新ui组件??
- Guess Number Higher or Lower
- cocoapods questions I met when update to OS10.11
- ios-坐标系统(详解UIView的frame、bounds跟center属性[图])
- HBuilder使用夜神模拟器调试Android应用
- jsp include 参数混乱,获取到请求主页面的参数了,清空request parameter
- UESTC 2016 Summer Training #1 Div.2(未完待续)
- String,StringBuffer和StringBuilder的区别和联系