露娜想找一些好朋友,于是她来到了兰德索尔,而且她发现这里居然有人和她同名 (xcw),露娜认为,和她名字相同或者高度相似的人都能成为她的朋友,现在她想知道,她最多能和几个人成为朋友呢?
我们认为,两个人的名字高度相似当且仅当他们的长度差为 11,并且较长的名字删除一个字符后会变成较短的名字。
输入格式 第一行,一个字符串 SS,表示露娜在兰德索尔的名字。
第二行,一个正整数 mm,分别表示兰德索尔的人数。
接下来 mm 行,每行一个字符串,代表一个人的名字。
输出格式 输出一行,一个数,表示有多少人可以和露娜成为朋友。
#include <bits/stdc++.h>
using namespace std;
int main() {
freopen("illusion.in", "r", stdin);
freopen("illusion.out", "w", stdout);
string s;
cin >> s;
string ss;
int cnt;
cin >> cnt;
cnt = 0;
while (cin >> ss) {
if (ss == s) {
cnt++;
continue;
}
if (abs(ss.size() - s.size()) > 1 || ss.size() == s.size()) continue;
if (s.size() > ss.size())
for (int i = 0; i < s.size(); i++)
if (s.substr(0, i) + s.substr(i + 1, s.size() - i - 1) == ss) {
cnt++;
break;
}
if (s.size() < ss.size())
for (int i = 0; i < ss.size(); i++)
if (ss.substr(0, i) + ss.substr(i + 1, ss.size() - i - 1) == s) {
cnt++;
break;
}
}
cout << cnt << endl;
return 0;
}