题目:[NOIP2011 普及组] 统计单词数
题目原文请移步下面的链接
- https://www.luogu.com.cn/problem/P1308
- 参考题解:https://www.luogu.com.cn/problem/solution/P1308
- 标签:
OI
、模拟
、字符串
思路
- 整行输入后先统一字母大小写(好久以前写的代码了,所以方法蛮土的,也可以用函数,不用非得通过ascll码)
- 然后分割字符串,使每个单词独立,并存储每个单词
- 接着走循环然后找有没有目标单词,最后输出就ok啦
AC代码
代码语言:javascript复制#include <bits/stdc .h>
using namespace std;
#define endl 'n';
void split(string &s, char a, vector<string> &vs) {
stringstream ss(s);
string item;
while (getline(ss, item, a)) {
vs.push_back(item);
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
string s;
cin >> s;
string str;
getline(cin, str);
int ans = 0;
int cnt = -1;
vector<string> vs;
getline(cin, str);
for(int i = 0; i < s.size(); i ) {
if ( s[i] <= 'Z' && s[i] >= 'A') {
s[i] = 32;
}
}
for(int i = 0; i < str.size(); i ) {
if ( str[i] <= 'Z' && str[i] >= 'A') {
str[i] = 32;
}
}
split(str, ' ', vs);
for (int i = 0; i < vs.size(); i) {
if (vs[i] == s) {
ans ;
}
if (ans == 0) {
cnt = vs[i].size() 1;
} else if (ans == 1 && i == 0) {
cnt = 0;
}
}
if (ans == 0) {
cout << -1;
} else if (cnt == 0) {
cout << ans << " " << cnt;
} else {
cout << ans << " " << cnt 1;
}
return 0;
}