ABC287 B. Postal Card
Difficulty:-471
問題
$ 6文字の文字列の集合$ Sがある。
$ 3文字の文字列の集合$ Tがある。
$ Sに含まれる文字であって、末尾$ 3文字が$ Tに含まれるものの数を答えよ。
解法
$ Sの各文字について、その末尾3文字がTに含まれるかどうかを判定する。
「含まれるかどうか」の判定は、setを用いることで高速に行うことができる。
実装
code:cpp
using namespace std;
int main(){
//入力受け取り
int n,m;cin >> n >> m;
vector<string>s(n),t(m);
for(int i = 0;i < n;i++)cin >> si; //Tの要素をsetに入れておく
set<string>tset;
for(int i = 0;i < m;i++){
}
int ans = 0;
for(int i = 0;i < n;i++){
//末尾3文字を取り出す
string matubi = "";
//tsetの中に末尾があったら答えに加算
if(tset.count(matubi)){
ans ++;
}
}
cout << ans << endl;
}