idea做一个自己的网站教程,wordpress 栏目页,网页设计html代码大全菜鸟,北京app开发多少钱前言:
这道题没理解清题目表达意思#xff0c;我开始想的是用map来记录个数#xff0c;然后一个变量记录一开始出现的单词位置#xff0c;不挺简单的吗#xff0c;然后....就AC了2个..从错误提示能看到个数没啥问题#xff0c;但是第一个单词位置不对#xff0c;看了新样…前言:
这道题没理解清题目表达意思我开始想的是用map来记录个数然后一个变量记录一开始出现的单词位置不挺简单的吗然后....就AC了2个..从错误提示能看到个数没啥问题但是第一个单词位置不对看了新样例发现输入文本前面可能是空格....
样例:
输入
td Td tLWCsrmt
输出 1 2
没AC过的代码:
#include bits/stdc.h
using namespace std;
string s, tmp;
mapstring, int mp;
int main() {cin s;transform(s.begin(), s.end(), s.begin(),::tolower);int cnt 0;int flag -1;while (cin tmp) {transform(tmp.begin(), tmp.end(), tmp.begin(), ::tolower);if (flag -1 tmp s) {flag cnt;}cnt tmp.size();mp[tmp];cin.get();cnt 1;}if (flag -1) {cout -1;}else {cout mp[s] flag;}return 0;
}
修整之后:
输入s两端需要加上空格因为题目要求是一个独立的单词完全适配不加空格会部分适配。
b加空格的原因是s加了空格样例1那样目标出现在首部或者尾部
#include bits/stdc.h
using namespace std;
string s, b;
int cnt, pos -1;
int main() {cin s;transform(s.begin(), s.end(), s.begin(),::tolower);s s ;cin.get();getline(cin, b);//将b转化为小写transform(b.begin(), b.end(), b.begin(), ::tolower);b b ;//在b中查找aint p 0;while ((p b.find(s, p)) ! string::npos) {cnt;//次数if (cnt 1) pos p;p;}if (cnt 0) printf(%d %d\n, cnt, pos);else printf(%d, -1);return 0;
}