dalao们帮我看看这个为啥会TLE啊?只有前两个是AC
查看原帖
dalao们帮我看看这个为啥会TLE啊?只有前两个是AC
1378709
Yue_Hao楼主2024/8/9 12:49
#include <bits/stdc++.h>
using namespace std;
int main(){
	bool f = false;
	long long index, sum = 0, want_index;
	string s, w;
	cin >> w;
	cin.ignore();
	getline(cin, s);
	for(int i = 0; i < w.size(); i++) if(w[i] >= 'A' && w[i] <= 'Z') w[i] = w[i] - 'A' + 'a';
	for(int i = 0; i < s.size(); i++) if(s[i] >= 'A' && s[i] <= 'Z') s[i] = s[i] - 'A' + 'a';
	while( s.find(w) != string::npos ){
		index = s.find(w);
		if( s[index - 1] >= 'a' && s[index - 1] <= 'z' || s[index + 2] >= 'a' && s[index + 2] <= 'z') continue;
		else{
			f = true;
			want_index = index;
			break;
		}
	}
	if( f == false ){
		cout << -1;
		return 0;
	}else{
		while( s.find(w) != string::npos ){
			index = s.find(w);
			if( s[index - 1] >= 'a' && s[index - 1] <= 'z' || s[index + 2] >= 'a' && s[index + 2] <= 'z') continue;
			else{
				sum++;
				s.replace(index, 2, "");
			}
		}
	}
	printf("%lld %lld", sum, want_index);
	return 0;
}
2024/8/9 12:49
加载中...