最后一行无法输出答案
查看原帖
最后一行无法输出答案
384064
kevin985楼主2021/6/27 10:02
#include <bits/stdc++.h>
#include <cstring>
#define INF 0x7f7f7f7f
#define eps 1e-6
#define ll long long
#define ull unsigned long long
#define N 100010
using namespace std;
int n;
string l;
map<string,string>f;
inline int read(){
	int s=0,w=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
	while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
	return s*w;
}
inline void init()
{
	n = read();
	for(int i=1;i<=n;i++)
	{
		getline(cin,l);
		l += " ";
		string x="",w=""; bool flag=0; int k=0;
		for(int j=0;j<l.size();j++)
		{
			if(!flag && l[j] != ' ') x += l[j];
			else{
				flag = 1;
				k = j+1;
				break;
			}
		}
//		cout<<x<<" ";
		flag=0;
		for(int j=k;j<l.size();j++)
		{
			if(l[j] >= 'A' && l[j] <= 'Z') l[j] += 32;
			if(l[j] != ' ') w += l[j]; 
			else{
//				cout<<w<<" ";
				f[w] = x;
				w="";
			}
		}
		if(l[l.size()] == '\n') return;
//		printf("\n");
	}
}
inline void solve()
{
	string s = "";
	while(getline(cin,s))
	{
		for(int i=0;i<s.size();i++)
		{
			if(s[i] == '、' || s[i] == '-' || s[i] == 39) s.erase(i);
			if(s[i] == '.' || s[i] == ',' || s[i] == '?' || s[i] =='!' || s[i] == ';' || s[i] == '(' ||s[i] == ')' || s[i] == ' ' )
				s[i] = ' ';
		}
		string w;
		for(int i=0;i<=s.size();i++)
		{
			if(i == s.size()) break;
			if(s[i] != ' ') w += s[i];
			else{
				if(f[w] != "")
				{
					cout<<f[w]<<endl;
					break;
				}
				w = "";
			}
		}
	}
}
int main()
{
//	std::ios::sync_with_stdio(false);
	init();
	solve();
	return 0;
}
2021/6/27 10:02
加载中...