题解 [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;
}
posted @ 2022-11-11 16:33  Chen_Jinhui  阅读(9)  评论(0)    收藏  举报  来源