座位个数

描述

传染病突袭A城,A城提出解决方案,各类娱乐场所保证人群不能密切接触,做好防护措施,现在某电影院提出了如下开业方案:

两个人不能坐在相邻的位置上(即两个人之间至少要隔一个座位),现在有一排横向排列的座位,电影院的负责人想知道,这一排最多能坐多少人?

输入

输入一行字符串s,’.’代表一个座位,1≤s字符串的长度≤1000001≤s字符串的长度≤100000 (输入的字符串中只包含’.’)

输出

一个整数,代表最多能坐多少人。

输入样例 1

..

输出样例 1

1


读题目,获取重要信息.

“两个人不能坐在相邻的位置上(即两个人之间至少要隔一个座位)”

**读完这句话,应该明白是 接一跳一的形式坐人

“现在有一排横向排列的座位,电影院的负责人想知道,这一排最多能坐多少人?”

**读完这句话我们得知,我们不需要考虑换行的情况,我们需要求的结果是一排能做几个人

通过输入我们可以知道,字符串S 代表的是座位的总数, s 中包含且仅包含”.” 而”.”代表的是一个座位.那我们只要知晓字符串 s 的总长度 就相当于 知道了座位的总数..

len() : 获取长度

可以获取很多数据的长度,例如: 列表,字符串,字典等…

使用方式 : len(s) s就是上面的那个字符串

回到一开始的问题,我们来找一找规律,

座位数123456789
人数112233445
奇数:坐了上一个偶数个数加一的人数
偶数:坐了座位数一半的人数
进阶:奇数能坐人数:
(座位数+1)/2

通过这个规律,总结出两个小公式:

奇数:(座位数+1)/2

偶数: 座位数/2

那现在最大的问题就是,区分奇数和偶数

找偶数我们可以跟2 相除,.看看能不能整除

这个时候,if 就用得上了. 怎么判断一个数与另一个数能否整除呢??????

取余!!!!!!!! %

if len(s) % 2 == 0

上面这个式子不就表示判断能否被2整除了吗.

余数为零表示是个偶数,那不为零,肯定就不是了呗

是偶数:

print(len(s)//2) 这里用双斜杠 “//” 的用意是,我的结果需要是整数,不能是小数

是奇数:

print((len(s)+1)//2)

完整程序:

s = input()
if len(s) % 2 == 0:
    print(len(s) // 2)
else:
    print((len(s)+1) // 2)
  • Avatar photo

    宁妄

    一个热爱自然却被困在代码世界的“人”

    Related Posts

    综合复习

    1️⃣ 认识Python Python就像和电脑说话的“魔法…

    牛马耕地

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注