题解:P14124 [SCCPC 2021] Nihongo wa Muzukashii Desu
题目传送门
题意理解
给定一些字符串
题目分析
题目看似复杂,其实你只要仔细看了输入格式,就会发现字符串的后缀只有 chimasu、rimasu、mimasu、bimasu、nimasu、kimasu、gimasu 或 shimasu 这几种情况(imasu的情况被取消了)。而这些后缀都共有 imasu 这个字符串,所以我们真正需要关注的只是倒数第6、7位的字符。
AC 代码
关于程序的细节见注释。
#include <bits/stdc++.h>
using namespace std;
int t;
string s;
int main(){
cin >> t;
while(t--){//t个字符串
cin >> s;
if(s=="ikimasu"){//题目中明确说明的例外,直接特判
cout << "itte\n";//记得换行
continue;
}
int len=s.size();
char c1=s[len-6];//s从0下标开始存 len-6就指的是倒数第6位
if(c1=='h'){//说明后缀是chimasu或shimasu
for(int i=0;i<len-7;i++) cout << s[i];//将原字符串输出直到后缀之前
char c2=s[len-7];//chimasu或shimasu后缀有7位
if(c2=='c') cout << "tte";
if(c2=='s') cout << "shite";
}else{//否则是其他后缀
for(int i=0;i<len-6;i++) cout << s[i];
if(c1=='r') cout << "tte";
if(c1=='m'||c1=='b'||c1=='n') cout << "nde";
if(c1=='k') cout << "ite";
if(c1=='g') cout << "ide";//输出时不要空格,这样所有输出就连成一个单词
}
cout << "\n";//统一换行
}
return 0;
}
AC 记录