用map 0分,为啥?求教
查看原帖
用map 0分,为啥?求教
1010033
NeilyoD楼主2024/12/29 21:29
#include<bits/stdc++.h>
using namespace std;
map<string,string>mp;
map<string,bool>check;
int main(){
	string s;
	int num=1;
	int n,L,m;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>L;
		char h=i+'0';//第h行 
		check.clear();
		for(int j=1;j<=L;j++){ 
			cin>>s;
			if(check[s]==1)continue;
			if(mp[s]==""){
				//没储存过s
				string sp="";
				sp+=h;
				mp[s]=sp; //不带空格 
			}else{//储存过 
				string sp=" ";
				sp+=h;
				mp[s]+=sp; //加空格 
			}
			check[s]=1;//s出现过了,不要继续管 
		}
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		string sp2;
		cin>>sp2;
		if(mp[sp2]=="")cout<<endl;
		else cout<<mp[sp2]<<endl;
	}
	
	
	
	return 0;
}

思路是用map记录下每个字符的行数,最后一起输出,用check来保证同一个行多次出现s重复记录行数的问题,0分,求教问题出在哪?

2024/12/29 21:29
加载中...