#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
getchar();
while(n--){
string s;
getline(cin,s);
cout<<s<<endl<<"AI: ";
istringstream in(s);
string word;
vector<string> words;
while(in>>word){
words.push_back(word);
}
for(auto &word:words){
int n = word.size();
int p=-1;
for(int k=0;k<n;k++){
if(ispunct(word[k])){
p=k;
break;
}
}
if(p!=-1){
string left = word.substr(0,p),mid = word.substr(p,1),right = word.substr(p+1);
if(mid=="?") mid="!";
int f=0;
if((left=="can"||left=="could")&&right=="you"){
right = left;
left = "I";
f=1;
}
if(!f&&(left=="I"||left=="me")) left="you";
if(!f&&(right=="I"||right=="me")) right="you";
word = left+mid+right;
}
}
for(auto &word:words){
for(auto &w:word){
if(isalpha(w)&&w!='I'){
w = tolower(w);
}
}
}
for(int i=0;i<words.size()-1;i++){
int f=0;
if((words[i]=="can"||words[i]=="could")&&words[i+1]=="you"){
words[i+1] = words[i];
words[i] = "I";
f=1;
i++;
}
if(!f&&(words[i]=="I"||words[i]=="me")){
words[i]="you";
}
}
cout<<words[0];
for(int i=1;i<words.size();i++){
if(ispunct(words[i][0])){
cout<<words[i];
}else{
cout<<" "<<words[i];
}
}
cout<<endl;
}
return 0;
}
【2019天梯赛L1-8】还是只有14分,弃题了
猜你喜欢
转载自blog.csdn.net/Csdn_jey/article/details/88955091
今日推荐
周排行