C语言单词覆盖还原(洛谷)

每日一句,送给最珍贵的你:
诱人的机会总是转瞬即逝的。真正好的投资机会不会经常有,也不会持续很长的时间,所以你必须做好行动的准备。要有随时行动的思想。

题目描述
一个长度为l(3<=l<=255)的字符串中被反复贴有 boy 和 girl 两单词,后贴上的可能覆盖已贴上的单词(没有被覆盖的用句点表示),最终每个单词至少有一个字符没有被覆盖。问贴有几个 boy 几个 girl?

输入格式
一行被被反复贴有boy和girl两单词的字符串。

输出格式
两行,两个整数。第一行为boy的个数,第二行为girl的个数。

输入
…boyogirlyy…girl…
输出
4
2

源代码:


#include<stdio.h>
#include<string.h>
int main() {
    int k,n,m,w;
    char a1[300];
    m=0;
    w=0;
    scanf("%s",a1);
    k=strlen(a1);
    if(k>=3&&k<=255) {
        for (n = 0; n < k; n++) {
            if (a1[n]!='.') {
                if(a1[n]=='b'){
                    m++;
                }
                if(a1[n]=='o'&&a1[n-1]!='b'){
                    m++;
                }
                if(a1[n]=='y'&&a1[n-1]!='o'){
                    m++;
                }
                if(a1[n]=='g'){
                    w++;
                }
                if(a1[n]=='i'&&a1[n-1]!='g') {
                    w++;
                }
                if(a1[n]=='r'&&a1[n-1]!='i'){
                    w++;
                }
                if(a1[n]=='l'&&a1[n-1]!='r'){
                    w++;
                }
            }
        }
    }
    printf("%d\n%d",m,w);
    return 0;
}

To:代码有点套娃的味道,哈哈哈。其实也可以写得少一点的,大家可以试试。

运行结果:
在这里插入图片描述
最后的话:题目很简单,主要是考我们的逻辑能力以及解决各种方案的能力。

刷题要找自己的不足,然后去专攻。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值