20pts求调内容详细且玄关
查看原帖
20pts求调内容详细且玄关
1027954
freeopen楼主2025/7/23 15:57

样例全过,但是下载数据后才考虑到输入的文章最开始可能为空格

比如第一个样例

td
  Td tLWCsrmt

输出应为

1  2

我的输出为

1 0

cin不能读入空格吗难道

#include<bits/stdc++.h>
using namespace std;
string fx,x;
bool flag=false; 
map<string,int>mp; 
int main(){
	cin>>fx;//fx为要找的 
	for(int i=0;i<fx.size();i++){
		if(fx[i]>='a')  fx[i]=fx[i]-' ';//我这边是将fx和x全变为大写,方便比较 
	}
	int cnt=0,t=0,p=0,fi=0,add=0;
	bool spe=false;//判断输入单词前是否有空格 
	while(cin>>x){
		for(int i=0;i<x.size();i++){
			if(x[i]==' '&&!isalpha(x[i+1])){
				add+=1;
				spe=true;         
			}
		}
		mp[x]=p;
		for(int i=0;i<x.size();i++){         
			if(x[i]>='a') x[i]=x[i]-' ';  
		}
		if(fx==x){
			t++;
			if(t==1){
				fi=p;//记录第一次位置 
			}
			cnt++;//计算数量 
			flag=true;//判断文章中是否存在 
		}
		p++; 
	}
	if(flag){
		if(!spe) cout<<cnt<<" "<<fi;
		else cout<<cnt<<" "<<fi+add+1;
	}
	else cout<<"-1";
	return 0;
} 

2025/7/23 15:57
加载中...