Broken Keyboard
来源:互联网 发布:外汇查询软件下载 编辑:程序博客网 时间:2024/06/04 00:27
On a broken keyboard, some of the keys are worn out. So when you type some sentences, the characters
corresponding to those keys will not appear on screen.
Now given a string that you are supposed to type, and the string that you actually type out, please list those keys
which are for sure worn out.
输入描述:
Each input file contains one test case. For each case, the 1st line contains the original string, and the 2nd line contains the typed-out string. Each string contains
no more than 80 characters which are either English letters [A-Z] (case
insensitive), digital numbers [0-9], or “_” (representing the space). It is guaranteed that both strings are non-empty.
输出描述:
For each test case, print in one line the keys that are worn out, in the order of being detected. The English letters must be capitalized.
Each worn out key must be printed once only. It is guaranteed that there is at least one worn out key.
输入例子:
7_This_is_a_test
_hs_s_a_es
输出例子:
7TI
#include <stdio.h>#include <string.h>#include <stdlib.h>#define LEN 100void ProcessData (char* original,char* typeout) { int lenOrig = strlen(original); int lenType = strlen(typeout); int i; for (i=0; i<lenOrig; ++i) if (original[i]>='a' && original[i]<='z') original[i] -= 32; for (i=0; i<lenType; ++i) if (typeout[i]>='a' && typeout[i]<='z') typeout[i] -= 32;}bool NotInType (char* typeout, int len, char c) { for(int i=0; i<len; ++i) if (c == typeout[i]) return false; return true;}void FindWornoutKey (char *wornoutKey, char* original, char* typeout) { int origLen = strlen(original); int typeLen = strlen(typeout); int iOrig = 0, iType = 0, iWorn = 0; for (iOrig=0; iOrig<origLen; iOrig++) { if (NotInType(typeout, typeLen, original[iOrig])) wornoutKey[iWorn++] = original[iOrig]; } //remove the repeated charactor int wornLen = strlen(wornoutKey); int i, j, k; for (i=0; i<wornLen-1; ++i) { for (j=i+1; j<wornLen; ++j) { if (wornoutKey[i] == wornoutKey[j]) { for(k=j; k<wornLen-1; ++k) wornoutKey[k] = wornoutKey[k+1]; wornoutKey[k] = '\0'; j--; wornLen--; } } }}int main (int argc, char *argv[]) { char wornoutKey[LEN]; char original[LEN]; char typeout[LEN]; memset(wornoutKey, '\0', LEN); memset(original, '\0', LEN); memset(typeout, '\0', LEN); scanf("%s", original); scanf("%s", typeout); ProcessData(original, typeout); FindWornoutKey(wornoutKey, original, typeout); printf("%s", wornoutKey);}
- Broken Keyboard
- Broken Keyboard
- Broken Keyboard
- broken keyboard
- swun Broken Keyboard
- UVA11988 Broken Keyboard
- hdu Broken Keyboard(模拟)
- PAT 1084. Broken Keyboard
- 1084. Broken Keyboard (20)
- 1084. Broken Keyboard (20)
- 1084. Broken Keyboard (20)
- Broken Keyboard SDUTOJ
- 1084. Broken Keyboard (20)
- Uva 11988 Broken Keyboard
- 1084.Broken Keyboard
- uva11988 broken keyboard
- UVA11988 Broken Keyboard 链表
- 1084. Broken Keyboard (20)
- 上传文件
- 从fragment跳转到activity , 返回到指定fragment页面
- SPRING 整合IBATIS或者hibernate等持久数据层流程与实现
- 关于Class.forName(className).newInstance()介绍
- Android所有的自带系统图片
- Broken Keyboard
- ffmpeg用代码实现自己的muxer
- 【应用篇】Activiti监听与业务颗粒结合的简单应用(三)
- OC笔记,数组NSArray
- 网络拓扑简析
- sockaddr_in和sockaddr简介
- 常用的C++库总结
- Unity区分平台编译
- 浏览器返回刷新页面