PTA 2025 跨年挑战赛 身体 蛇年谐音梗

2025 年是蛇年,大家都在用“蛇”造好玩的谐音梗,比如“蛇我其谁,年年有为”,还有略转音的如“蛇全蛇美”、“蛇来运转”等…… 喜欢编程的你也想造梗,于是直接写个程序,从一万句话里把带了汉语拼音 sheshi 的句子都自动挑出来备选。

输入格式:

输入第一行给出正整数 n(≤10^4),随后 n 行,每行给出一句话,即长度不超过 10^3 个字符、由英文字母和空格组成的字符串,以回车结束。

输出格式:

按照输入的顺序扫描每句话,如果句子中带有 she 或是 shi(不区分大小写),则在一行中原样输出这句话。题目保证至少有一句输出。

输入样例:

4
she wo qi shui    nian nian you wei
zhe ju hua li mei you xie yin zi
shi quan shi mei 
SHILaiYunZhuan

输出样例:

she wo qi shui    nian nian you wei
shi quan shi mei 
SHILaiYunZhuan

注意样例输出的第 2 句末尾有空格,必须原样输出。

代码长度限制

16 KB

Java (javac)

时间限制

1000 ms

内存限制

256 MB

其他编译器

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

思路:注意到题目中说“如果句子中带有 she 或是 shi”,she和shi的共同点是前两个字母是sh,可以通过判断字符串中是否有连续的三个字母为“sh”+“e” or “i”(记得包含大小写)

        从这方面破题的话个人在写这道题的时候一开始用了strstr函数(现在看来非常之蠢),后来用指针写才对。

#include <stdio.h>

int main(){
    int n;
    scanf("%d\n",&n);
    char c[1001],*p;
    while (n--){
        gets(c);
        for (p=c;*(p+2);p++){//*(p+2)是为了定位第三个字符在字符串长度范围内
            if ((*p=='s'||*p=='S')&&(*(p+1)=='h'||*(p+1)=='H')&&(*(p+2)=='i'||*(p+2)=='I'||*(p+2)=='E'||*(p+2)=='e')){
                puts(c);
                break;
            }
        }
    }
}

如有错误,敬请指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值