题解 [ABC276A] Rightmost
大家好,我是 CQ-C2024 蒟蒻 CJH。
题意
给定一个字符串 $S$,求出字符 a 在 $S$ 中最后一次出现的位置(如果没有则输出 $-1$)。
分析思路
题意即为思路,我这里提供一种较快的方法(因为我直接成为了最优解)。
众所周知,getchar() 读入每个字符比 scanf("%s") 或 cin 读入字符串快得多。
所以我们可以直接一直读入字符直至文件结束符 EOF,当此时字符为 a 时,就记录此处的位置。
代码
#include<cstdio>
int main(){
char ch;
int a=-1,now=0;//a 字符的位置和当前输入的位置。
while(~(ch=getchar())){++now;if(ch=='a')a=now;}//当读入到文件结束符 EOF 时会返回 -1.
printf("%d\n",a);
return 0;
}

浙公网安备 33010602011771号