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:代码有点套娃的味道,哈哈哈。其实也可以写得少一点的,大家可以试试。

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

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

猜你喜欢

转载自blog.csdn.net/m0_46259251/article/details/108165467