专栏文章

题解: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 个月前
查看原文

题意理解

给定一些字符串 ss,根据题目要求把其后缀分类,并根据分类输出修改后的字符串。

题目分析

题目看似复杂,其实你只要仔细看了输入格式,就会发现字符串的后缀只有 chimasurimasumimasubimasunimasukimasugimasushimasu 这几种情况(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 条评论,欢迎与作者交流。

正在加载评论...