思路分析:
- 创建一个大小为10的向量
hash
,用于记录以每个数字结尾的字符串数量。 - 输入字符串数量
n
。 - 循环读取每个字符串,并更新
hash
中以当前字符串结尾的字符串数量。 - 同时更新最大字符串数量
count
。 - 输出不可达的字符串数量,即
n
减去最大字符串数量count
。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm> // For max function
using namespace std;
int main() {
vector<int> hash(10, 0); // 创建一个大小为10的向量,用于记录以每个数字结尾的字符串数量
int n; // 输入的字符串数量
int count = 0; // 记录最大的字符串数量
cin >> n; // 输入字符串数量
for (int i = 0; i < n; ++i) {
string s;
cin >> s; // 输入字符串
// 更新以当前字符串结尾的字符串数量
hash[s[s.size() - 1] - '0'] = max(hash[s[0] - '0'] + 1, hash[s[s.size() - 1] - '0']);
// 更新最大字符串数量
count = max(hash[s[s.size() - 1] - '0'], count);
}
// 输出不可达的字符串数量
cout << n - count << endl;
return 0;
}