单词覆盖还原#洛谷
2023-12-26 17:05:59
题目描述
一个长度为
l
l
l 的字符串中被反复贴有 boy
和 girl
两单词,后贴上的可能覆盖已贴上的单词(没有被覆盖的用句点表示),最终每个单词至少有一个字符没有被覆盖。问贴有几个 boy
几个 girl
?
输入格式
一行被反复贴有 boy
和 girl
两单词的字符串。
输出格式
两行,两个整数。第一行为 boy
的个数,第二行为 girl
的个数。
样例 #1
样例输入 #1
......boyogirlyy......girl.......
样例输出 #1
4
2
提示
数据保证, 3 ≤ l ≤ 255 3\le l\le255 3≤l≤255,字符串仅仅包含如下字符: .bgilory \texttt{.bgilory} .bgilory。
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)
整个单词整个单词的判断,出现一个片段就判断一次,剩下的片段直接跳过。虽然代码很冗长但是思想简单,一遍通过,不用调试就是十分舒服了,不过最好还是能用优秀的方法来简化一下代码
文章来源:https://blog.csdn.net/KLSZM/article/details/135223066
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!