题意略。
思路:
这种字符串的模拟题,应该熟练使用stringstream。
详见代码:
#include
using namespace std;
map
vector
void change(string& str){
for(int i = ;i < str.length();++i){
str[i] = tolower(str[i]);
}
}
int main(){
std::ios::sync_with_stdio(false);
cin.tie();
int n;
cin>>n;
string str;
getline(cin,str);
for(int i = ;i < n;++i){
getline(cin,str);
stringstream ss(str);
string name,temp;
ss>>name;
while(ss>>temp){
change(temp);
mp[temp] = name;
}
}
getline(cin,str);
while(getline(cin,str)){
for(int i = ;i < str.length();++i){
if(str[i] == ',' || str[i] == '.' || str[i] == '!' || str[i] == ';' || str[i] == '('
|| str[i] == ')' || str[i] == '?'){
str[i] = ' ';
}
}
stringstream ss(str);
store.clear();
string temp;
while(ss>>temp){
change(temp);
store.push_back(temp);
}
for(int i = ;i < store.size();++i){
if(mp.count(store[i])){
cout<<mp[store[i]]<<endl;
break;
}
}
}
return ;
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章