单词覆盖还原#洛谷

题目描述

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

输入格式

一行被反复贴有 boygirl 两单词的字符串。

输出格式

两行,两个整数。第一行为 boy 的个数,第二行为 girl 的个数。

样例 #1

样例输入 #1

复制代码
......boyogirlyy......girl.......

样例输出 #1

复制代码
4
2

提示

数据保证, 3 ≤ l ≤ 255 3\le l\le255 3≤l≤255,字符串仅仅包含如下字符: .bgilory \texttt{.bgilory} .bgilory。

python 复制代码
data=input()
num_boy=0
num_girl=0
length=len(data)
step=0
while step <length:
    if data[step]=='.':
       step+=1
       pass
    else:
        if data[step] == 'b':
            num_boy += 1
            if data[step + 1] == 'o':
                if data[step + 2] == 'y':
                    step += 3
                    pass
                else:
                    step += 2
                    pass
                pass
            else:
                step += 1
                pass
            pass
        elif data[step] == 'o':
            num_boy += 1
            if data[step + 1] == 'y':
                step += 2
                pass
            else:
                step += 1
                pass
            pass
        elif data[step] == 'y':
            num_boy += 1
            step += 1
            pass
        elif data[step] == 'g':
            num_girl += 1
            if data[step + 1] == 'i':
                if data[step + 2] == 'r':
                    if data[step + 3] == 'l':
                        step += 4
                        pass
                    else:
                        step += 3
                        pass
                    pass
                else:
                    step += 2
                    pass
                pass
            else:
                step += 1
                pass
            pass
        elif data[step] == 'i':
            num_girl += 1
            if data[step + 1] == 'r':
                if data[step + 2] == 'l':
                    step += 3
                    pass
                else:
                    step += 2
                    pass
                pass
            else:
                step += 1
                pass
            pass
        elif data[step] == 'r':
            num_girl += 1
            if data[step + 1] == 'l':
                step += 2
                pass
            else:
                step += 1
                pass
            pass
        elif data[step] == 'l':
            num_girl += 1
            step += 1
            pass

print(num_boy)
print(num_girl)

整个单词整个单词的判断,出现一个片段就判断一次,剩下的片段直接跳过。虽然代码很冗长但是思想简单,一遍通过,不用调试就是十分舒服了,不过最好还是能用优秀的方法来简化一下代码

相关推荐
CHHH_HHH6 分钟前
【C++11】深入解析C++可变参数模板
开发语言·c++·算法·stl·c++11
hurrycry_小亦7 分钟前
洛谷题目:P1215 [USACO1.4] 母亲的牛奶 Mother‘s Milk 题解(本题简)
算法
麻雀飞吧37 分钟前
2026年AI量化开发,先跑通小流程再加复杂功能
人工智能·python
daphne odera�1 小时前
PyCharm 中 Codex 插件启动失败:unknown variant default 的解决方法
python·chatgpt·pycharm
KJ_BioMed1 小时前
从PDB到高亲和力分子:De novo生成式计算化学Pipeline剖析
算法·生物医药·生物科研·科研干货·化合物设计
nbu04william1 小时前
Deepseek-api省token的用法
python·大模型·token·deepseek
测试老哥2 小时前
Pytest自动化测试详解
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
坚持学习前端日记2 小时前
国产化适配全流程适配英伟达本地开发
人工智能·python
一个王同学2 小时前
从零到一 | CV转多模态大模型 | week17 | LLM 推理优化 & vLLM 详解
人工智能·深度学习·算法·机器学习·计算机视觉·vllm
jimy12 小时前
C语言模拟对象、方法:“函数指针+结构体“复用函数指针指向的函数体
c语言·开发语言