蓝桥杯|5月29日第十三届蓝桥杯国赛python中高年级组 小鸟看对方 题目、答案和解析

5月29日的蓝桥杯国赛来了,不确定这是第几题了,sorry哈
目录
题目:
输入描述:
输出描述:
样例输入:
样例输出:
思路:
代码:
小结:

题目: 在一根电线上落有N只小鸟,有的小鸟头向左看,有的小鸟向右看,且每只小鸟只能看到它视线前的那一只小鸟。
给定N只小鸟头的朝向,头向左看的小鸟使用小写字母“q”表示,头向右看的小鸟用小写字母“p”表示,请你计算出N只小鸟中有多少只小鸟被0只小鸟看到,多少只小鸟披1只小鸟看到,多少只小鸟披2只小鸟看到。
例如:N=6,6只小鸟头的朝句分别为p , q , p , p , q , q。
蓝桥杯|5月29日第十三届蓝桥杯国赛python中高年级组 小鸟看对方 题目、答案和解析
文章图片

如图:有2只小鸟被0只小鸟看到(第3只和第6只);有2只小鸟被1只小鸟看到(第1只和第2只);有2只小鸟同时被2只小鸟看到(第4只和第5只),则输出三个数字分别为2,2,2。
输入描述:
【蓝桥杯|5月29日第十三届蓝桥杯国赛python中高年级组 小鸟看对方 题目、答案和解析】第一行输入一个正整数N(3≤N≤1000),表示有N只小鸟落在电线上。第二行输入N个字符,字符只能为“q”和“p”,“q”表示小鸟头向左看,“p”表示小鸟头向右看,字符之间以一个英文逗号隔开
输出描述:
一行输出三个证书,分别为有几只小鸟被0只小鸟看到;有几只小鸟被1只小鸟看到;有几只小鸟被2只小鸟看到;整数之间一个英文逗号隔开
样例输入:
6
p,q,p,p,q,q
样例输出:
2,2,2
思路: 要想知道小鸟被几个人看,侧重点不在这只小鸟,而在他两侧的小鸟头朝向哪里。根据观察,两旁的小鸟头同一方向,这只小鸟被一只小鸟看,两侧小鸟背对背,这只鸟被0只小鸟看,两侧小鸟面对面,这只鸟被2只小鸟看。关键就是第1只小鸟和最后一只,他们缺一侧的小鸟,那我们就给他们补上。蓝桥杯|5月29日第十三届蓝桥杯国赛python中高年级组 小鸟看对方 题目、答案和解析
文章图片

补上后你可以试试,无论第一只和最后一只头朝向哪里,加上的都不影响最终的正确结果,加上后还能让他们也符合规律。
代码:

n=int(input())# 输入小鸟数 m=['q']+input().split(',')+['p']# 创建小鸟的头朝向列表,给第一只和最后一只小鸟,加上一只“假想鸟” a=b=c=0# a代表被0只小鸟看到,b代表被1只小鸟看到,c代表被2只小鸟看到 for i in range(1,n+1):# i代表索引号,从第一只小鸟到第六只小鸟 if m[i-1]==m[i+1]:# 如果两侧头朝向一致 b+=1# 被1只小鸟看到的小鸟数+1 elif m[i-1]=='q' and m[i+1]=='p':# 如果两侧小鸟背对背 a+=1# 被0只小鸟看到的小鸟数+1 else:# 剩下的情况就是两侧小鸟面对面 c+=1# 被2只小鸟看到的小鸟数+1 print(a,b,c,sep=',')# 打印abc中间英文逗号隔开

小结: 这次蓝桥杯国赛题目偏难,但硬做肯定能做上,这里小编要强调一点,考试前都会认为自己考试时一定不紧张,可考试紧张是必然的,不要刻意让自己不紧张,在紧张时候大脑有时会“短路”,所以一定要把自己的知识储备的牢牢的,就像1+1那么张口就来,在做题时要灵活思考,找规律,一定要保持大脑灵活哦!好啦,今天的文章就到这里啦,欢迎三连,点赞、关注、收藏。希望我发什么题尽管私信或评论区找我哦,题目有什么问题也可以来,欢迎你们!

    推荐阅读