mapとは?
map< keyの型,valueの型 > 配列名というように書く!
それ故、string型のkeyからもvalueが見つけられる!
配列の書き方の幅が増えた。(今まではA[1]=5,A[1]=carみたいな感じでどちらも引数にstring型を代入することが出来なかった....)
map::atとは?
keyの型がstring型だとすると、~文字目のcharcterが分かる優れもの!
文字列1.at(文字列1の~文字目のインデックス番号)
#include <bits/stdc++.h>
#define rep(i,n) for (int i=0; i<n; i++)
using namespace std;
int main(){
int N; cin >> N;
map<string,int> A;
string before,after;
cin >> before;
A[before]++;
rep(i,N-1){
cin >> after;
if ((before.at(before.size()-1)) == after.at(0) && A[after]==0 ){
A[after]++;
before=after;
}else{
cout << "No";
return 0;
}
}
cout << "Yes";
}
まとめ
mapによる配列の書き方の幅も広がって嬉しい!
あと、keyがstring型であることだけでなく、更にインデックス番号にてその文字まで探せるので楽ちん!