|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目描述
有这样一个抽奖活动,主办方会向人们发放一些卡片,每张卡片上印有若干字母(大小写字母都可能有),每个人可以领取若干卡片(由于卡片有限,一个人不可能领取很多,领取规则就不展开了)。开奖的时候,主办方随机给出一串字母(大小写字母都可能有),如果这串字母中的每种字母都能在某一个人的卡片上找到的话,那么那个人就能获得主办方颁发的奖品。CoCo领到了若干张卡片,现在请你判断她是否能获奖。
输入要求
第一行输入一个字符串,表示主办方随机给出的那串字母。(长度小于100)
第二行输入一个正整数n(n≤50),表示CoCo领到的卡片数量。
接下来n行,每行输入一个字符串,表示CoCo手上每一张卡片上的内容。
输出要求
如果CoCo能够获奖输出Yes,否则输出No。
输入样例
zAhimakaimen
6
sdm
zmk
ai
idf
henfd
nk
输出样例
No
本帖最后由 jackz007 于 2021-12-19 10:25 编辑
如果这串字母中的 每种字母都能在某一个人的卡片上找到的话。。。
" 每种字母" 是何意,是忽略大小写的意思?
- #include <stdio.h>
- char foo(char a[] , char b[])
- {
- char c , d , i , j , r ;
- for(r = 1 , i = 0 ; b[i] ; i ++) {
- c = (b[i] >= 'A' && b[i] <= 'Z') ? b[i] + ' ' : b[i] ;
- for(j = 0 ; a[j] ; j ++) {
- d = (a[j] >= 'A' && a[j] <= 'Z') ? a[j] + ' ' : a[j] ;
- if(d == c) break ;
- }
- if(! a[j]) {
- r = 0 ;
- break ;
- }
- }
- return r ;
- }
- int main(void)
- {
- char d , i , n , s[100][100] ;
- scanf("%s" , s[0]) ;
- scanf("%d" , & n) ;
- for(d = i = 0 ; i < n ; i ++) {
- scanf("%s" , s[i + 1]) ;
- if(foo(s[i + 1] , s[0])) d ++ ;
- }
- if(d) printf("Yes\n") ;
- else printf("No\n") ;
- }
复制代码
编译、运行实况
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- zAhimakaimen
- 6
- sdm
- zmk
- ai
- idf
- henfd
- nk
- No
- D:\00.Excise\C>x
- zAhimakaimen
- 7
- sdm
- zmk
- ai
- idf
- henfd
- nk
- xzahiomkewn
- Yes
- D:\00.Excise\C>
复制代码
|
|