为什么运行结果没问题但是只能过50分啊啊啊啊
查看原帖
为什么运行结果没问题但是只能过50分啊啊啊啊
1596418
Aurora___18楼主2025/2/7 09:53

为什么运行结果没问题但是只能过50分啊啊啊啊

#include<bits/stdc++.h>
using namespace std;
int main() {
	string str;
	cin >> str;//输入需要查找的单词
	for (int i = 0; i < str.length(); i++) {
		if (str[i] >= 65 && str[i] <= 90) {
			str[i] += 32;
		}

	}//用于将所有大写字母转换成小写字母
	cin.ignore(numeric_limits<streamsize>::max(), '\n');// 清除缓冲区中的换行符,防止getline立即退出
	string BigStr;
	getline(cin, BigStr);//输入文章
	for (int i = 0; i < BigStr.length(); i++) {  
		if (BigStr[i] >= 65 && BigStr[i] <= 90) {
			BigStr[i] += 32;
		}
	} //将文章中的所有大写字母变成小写
	int time = 0;//计数文章中每一个单词的长度
	int i = 0;
	int time1 = 0;//计数要查找的单词出现的次数
	while (i < BigStr.length()) {
		if (BigStr[i] == ' ') {
			i++;
			time = 0;//每一次跳过空格后将字母个数重置为0
			continue;
		}//跳过文章中的空格
		time++;//每一次循环都+1,计数单词的字母个数也就是单词长度
		if (time == str.length() && str == BigStr.substr(i - time + 1, time)) {
			time1++;
		}//当找到满足的单词时time1++
		i++;
	}
	if (time1 == 0) {
		cout << -1;
	}
	else {
		cout << time1 << ' ' << BigStr.find(str)<<'\n';//输出单词第一次出现的索引
	}

}
2025/2/7 09:53
加载中...