D.周波廷学长的AK
题目描述:
AK是每个acmer在每场比赛中的最大追求。(AK:指在一次比赛中把全部题目都写出来了)
周波廷学长正在整理自己的训练成绩。我们将训练赛的名字的简化成为一个个的字符串。
给定 n 个字符串。
如果一个字符串的结尾是 “AK” ,那么这次训练的成绩就是AK。请你输出哪次比赛会AK。
如果有多个次AK,输出最靠前的一个。
数据保证一定有解。
输入描述:
第一行一个整数 n(1 ≤ n≤ 1×102) ,表示字符串的数量。
接下来 n 行,一行一个字符串 ,保证每个字符串大小不超过100。
输出描述:
输出一个字符串 (比赛的名字) ,表示这次比赛AK了且最靠前(不包含"AK")。
示例:
输入:
3
acmer
ICPCAk
CCPCAK输出:
ICPC说明:
周波廷学长在ICPC与CCPC都AK了,但是ICPC排名更靠前
思路:对于每一个字符串,先计算其长度,再使用 substr(x, y)函数 (第一个参数为开始位置,第二个参数为结束位置)取出最后两位字符,如果是 “AK” ,则输出除去 “AK” 字符的字符串,结束运行。
AC代码如下:
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int n;
string a[N];
int main(){
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
for (int i = 1; i <= n; i++){
int len = a[i].size();//计算字符串长度
if (len >= 2){
string s = a[i].substr(len - 2, 2);//取出最后两位字符
if (s == "AK"){
//如果AK,则输出字符串
for (int j = 0; j < len - 2; j++)
cout << a[i][j];
cout << endl;
break;
}
}
}
return 0;
}