喵!不会awa
  • 板块灌水区
  • 楼主lucy2012
  • 当前回复18
  • 已保存回复18
  • 发布时间2024/8/17 21:05
  • 上次更新2024/8/18 07:53:25
查看原帖
喵!不会awa
1252442
lucy2012楼主2024/8/17 21:05

题目描述

小核桃的键盘不幸损坏了!然而,作为信息学的热衷者,小核桃仍需进行题解的编写。

为了给小核桃的题解撰写提供便利,星宇博士贴心地送给小核桃一个词典!

当小核桃碰到无法顺利打出的单词时,他便会把这个单词存进词典,待到再次碰到该单词,就能够调用词典中的内容。如此一来,小核桃就不会感到焦急万分啦。

现在,已知小核桃键盘坏掉的按键,以及小核桃即将要撰写的文章,您能算出最后词典里的单词数量吗?

输入格式

第一行是一个整数 n ,代表坏掉的按键数量。

第二行由 n 个字符组成,表示坏掉的按键(以空格分隔)。

第三行是一个整数 m ,代表文章中的单词数量。

第四行是 m 个字符串,表示文章里的单词(单词之间以空格隔开)。

输出格式

第一行输出一个整数,用以表示最终词典里的词数。

示例输入 1

2
t y
11
i can not use the two keys between r and u

示例输出 1

5

示例输入 2

5
a e i o u
10
before is before and now is now dishes practiced more

示例输出 2

7

提示

坏掉的按键仅仅是 26 位字母,并且不区分大小写;在本题中,所有的单词均由小写字母构成,而且每个单词的长度不超过 15 。

数据规模与约束

对于 60% 的数据:1 ≤ m ≤ 100

对于 100% 的数据:1 ≤ m ≤ 1000,0 ≤ n ≤ 26

我的代码喵:

#include<bits/stdc++.h>
using namespace std;
int n,m,cnt;
string s[10010],a[100];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>a[i];
	} 
	cin>>m;
	for(int i=1;i<=m;i++){
		int tmp=0;
		string ss;
		cin>>ss;
		for(int j=1;j<=n;j++){
			if(ss.find(a[j])==-1){
				tmp=1;
				break;
			}
		}
		if(tmp){
			continue;
		}
		for(int j=1;j<=cnt;j++){
			if(s[j]==ss){
				tmp=1;
				break;
			}
		}
		if(tmp){
			continue;
		}
		cnt++;
		s[cnt]=ss;
	}
	cout<<cnt;
    return 0;
}
2024/8/17 21:05
加载中...