<LightOJ 1338> Hidden Secret!
来源:互联网 发布:js实现隐藏div 编辑:程序博客网 时间:2024/05/15 23:48
Description
In this problem you are given two names, you have to find whether one name is hidden into another. The restrictions are:
1. You can change some uppercase letters to lower case and vice versa.
2. You can add/remove spaces freely.
3. You can permute the letters.
And if two names match exactly, then you can say that one name is hidden into another.
Input
Input starts with an integer T (≤ 100), denoting the number of test cases.
Each case starts with two lines. Each line contains a name consists of upper/lower case English letters and spaces. You can assume that the length of any name is between 1 and 100 (inclusive).
Output
For each case, print the case number and "Yes" if one name is hidden into another. Otherwise print "No".
Sample Input
3
Tom Marvolo Riddle
I am Lord Voldemort
I am not Harry Potter
Hi Pretty Roar to man
Harry and Voldemort
Tom and Jerry and Harry
Sample Output
Case 1: Yes
Case 2: Yes
Case 3: No
思路很简单,用整型数组a[]记录第一个name中出现的字母和个数,再跟之后输入的第二个name比较,具体实现方法见程序,此题也可以用STL map。
//Memory: 904 KBTime: 0 MS//Language: CResult: Accepted#include <stdio.h>#include <memory.h>#include <string.h>int main(){ int T; int a[26], cnt1, cnt2;//分别记录两个name的长度(除space) char c; int flag; scanf("%d ", &T);//%d后留一个空格就能忽略输入T时输入的回车 for(int ca=1; T--; ca++) { flag=1; cnt1 = cnt2 = 0; memset(a, 0, sizeof(a)); while(scanf("%c", &c) && c != '\n') {//putchar(c); if(c == ' ') continue; if(c <= 'Z') a[c - 'A']++; else a[c - 'a']++; cnt1++; } //for(int i=0; i<26; i++) printf("%d ", a[i]); while(scanf("%c", &c) && c != '\n') { if(c == ' ' || !flag) continue; if(c <= 'Z') { if(a[c - 'A']) a[c - 'A']--; else flag=0; } else { if(a[c - 'a']) a[c - 'a']--; else { flag=0; //break;//不可break,因为输入没结束!血淋淋的WA。。。 } } cnt2++; } //注意此处判断,这是针对第二个name是第一个name的非连续子序列的情况 if(cnt1 != cnt2) flag = 0; if(flag) printf("Case %d: Yes\n", ca); else printf("Case %d: No\n", ca); } return 0;}
- <LightOJ 1338> Hidden Secret!
- LightOJ 1338-Hidden Secret!【模拟】
- Lightoj--1338--Hidden Secret!(模拟)
- LightOJ - 1338(Crawling in process...) Hidden Secret! (模拟)
- light oj 1338 - Hidden Secret!
- Light oj 1338 - Hidden Secret!【字符串】
- LightOJ 1042 - Secret Origins
- LightOJ 1042 Secret Origins
- lightoj 1042 - Secret Origins
- Google Android Hidden Secret Codes
- LightOJ 1101 A Secret Mission
- lightoj 1042 - Secret Origins 【数学】
- LightOJ 1042 Secret Origins 贪心
- Lightoj1338——Hidden Secret!(模拟)
- LightOJ 1042 Secret Origins(二进制、STL)
- [树链剖分+MST] LightOJ 1101 - A Secret Mission
- LightOJ - 1042 Secret Origins (模拟)水
- LightOJ 1042 Secret Origins【位运算】
- UVa 10245 - The Closest Pair Problem
- for循环中i++与++i
- js中createElement的使用
- hdu 1860 统计字符 (水)
- UVa 11100 - The Trip, 2007
- <LightOJ 1338> Hidden Secret!
- java Swing版猜数小游戏·源码
- Jquery 中 bind 和 live 的好处与坏处!
- [Fatal Error] :-1:-1: Premature end of file.
- hdu3079 Vowel Counting (strlwr(将字符串中的字母转换为小写);strupr(转换为大写))
- Ruby on Rails 的检验方法(Validation Helpers)大全 (转)
- Jquery 获取对象的几种方式
- UVa 10716 - Evil Straw Warts Live
- hdu 3953 I'll play a trick on you (递推)