专栏文章
题解:P14124 [SCCPC 2021] Nihongo wa Muzukashii Desu
P14124题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minpezx9
- 此快照首次捕获于
- 2025/12/02 06:11 3 个月前
- 此快照最后确认于
- 2025/12/02 06:11 3 个月前
题意理解
给定一些字符串 ,根据题目要求把其后缀分类,并根据分类输出修改后的字符串。
题目分析
题目看似复杂,其实你只要仔细看了输入格式,就会发现字符串的后缀只有
chimasu、rimasu、mimasu、bimasu、nimasu、kimasu、gimasu 或 shimasu 这几种情况(imasu的情况被取消了)。而这些后缀都共有 imasu 这个字符串,所以我们真正需要关注的只是倒数第6、7位的字符。AC 代码
关于程序的细节见注释。
CPP#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;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...