社区讨论
站外题求助
学术版参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lod0mcsz
- 此快照首次捕获于
- 2023/10/30 22:48 2 年前
- 此快照最后确认于
- 2023/11/05 09:06 2 年前
露娜想找一些好朋友,于是她来到了兰德索尔,而且她发现这里居然有人和她同名 (xcw),露娜认为,和她名字相同或者高度相似的人都能成为她的朋友,现在她想知道,她最多能和几个人成为朋友呢?
我们认为,两个人的名字高度相似当且仅当他们的长度差为 11,并且较长的名字删除一个字符后会变成较短的名字。
输入格式
第一行,一个字符串 SS,表示露娜在兰德索尔的名字。
第二行,一个正整数 mm,分别表示兰德索尔的人数。
接下来 mm 行,每行一个字符串,代表一个人的名字。
输出格式
输出一行,一个数,表示有多少人可以和露娜成为朋友。
CPP#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;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...