ACGO欢乐赛#25 - 非官方py题解
2024-07-24 13:59:16
发布于:浙江
ACGO欢乐赛 #25 非官方pyhton题解
非官方题解,本蒟蒻写着玩的
1. Int 的最大值 传送门
C++中 int 类型在 32位编译器下的最大值为?
print(2**31-1)
解析:
在32位编译器下,int类型占4个字节,即32位,最大值为2^31-1。
2. 余数 传送门
a, b = list(map(int, input().split(" ")))
print(a % b)
解析:
使用python内置的取模运算符 %
即可。
3.打卡-达人榜 传送门
k = int(input()) # 目标经验值
n = 1 # 当前的经验值
m = 0 # 每次打卡的经验值
day = 0 # 天数
while m < k: # 即:在m >= k时跳出循环
day += 1 # 进行一次打卡,天数加一
m += n # 增加经验值
n += 1 # 增加每次打卡获得的经验值
print(day)
解析:
没什么好说的
先初始化几个变量
然后使用while循环进行模拟
当m >= k时跳出循环
最后输出day即可
4. 校验日志文件 传送门
import time
try:
time.strptime(input(), "%Y-%m-%d")
except:
print("YES")
else:
print("NO")
解析:
很奇妙的解决方案
time库中有一个time.strptime可以将字符串形式的时间转换成时间戳
如果字符串的时间是错误的则会报错
因此将输入的时间转换成时间戳
若正常转换则表示时间是正确的
若转换报错则表示时间不正确
5. 炎炎夏日 传送门
days = [input().split() for _ in range(7)]
try:
print(min([i for i in range(7) if days[i][2] == 'Y'], key=lambda x: (int(days[x][1]), int(days[x][0]), x))+1)
except ValueError:
print(-1)
解析:
先将输入的数据填入列表days
然后过滤出是晴天的日子
最后使用 min()
函数找到气温最小的日子
6.更好的回文串 传送门
s = input().replace("0", "").replace("1", "").replace("2", "").replace("3", "").replace("4", "").replace("5", "").replace("6", "").replace("7", "").replace("8", "").replace("9", "")
print("YES" if s == s[::-1] else "NO")
解析:
使用 replace()
函数将字符串中的数字替换为空字符串,然后判断替换后的字符串是否为回文串。
7. 灯光控制 传送门
t = int(input()) # 输入操作次数 t
light = [0 for _ in range(30)] # 初始化灯状态,0 表示熄灭,1 表示点亮
s = 0 # 初始时 s 的值为 0
for _ in range(t):
i = int(input()) # 输入每组操作的灯编号 i
light[i] ^= 1 # 切换灯的状态,0 变 1,1 变 0
s += -2 ** i if light[i] == 0 else 2 ** i # 根据灯的状态调整 s 的值
"""
上面一行等价于
if light[i] == 0:
s -= 2 ** i
else:
s += 2 ** i
"""
print(s) # 输出当前操作后的 s 值
解析
初始化 light 数组,其中每个元素代表对应编号灯的状态,初始时全部为 0(熄灭)。
初始化 s 的值为 0。
对于每次操作,根据灯的当前状态进行切换(使用 light[i] ^= 1
),并根据新的状态更新 s 的值。
打印每次操作后的 s 值。
8. 快乐数 传送门
n = int(input())
list_ = [n] # 存储之前每一次的结果
while n != 1:
n = sum(int(i) ** 2 for i in str(n)) # 计算n当前的值
if n in list_: # 若得出的结果与之前的某一次一致则表示这是一个无限循环
break
list_.append(n)
print('YES' if n == 1 else 'NO')
解析:
使用列表记录每次计算的结果,如果出现重复的结果,则说明进入了无限循环,不是快乐数,跳出循环。
如果最终结果为 1,则说明是快乐数。
全部评论 2
python代码短,看起来没啥缺点
2024-07-23 来自 浙江
1个人认为python除了运行速度比较低,基本上可以说是没有缺点
2024-07-24 来自 浙江
1速度慢,占内存,其他想不出来了(
2024-07-24 来自 湖南
0你试试高精度
2024-07-24 来自 浙江
0
暑假神速通失败(
2024-07-22 来自 广东
16
2024-07-22 来自 上海
0我半小时速通的hhhhh
2024-07-22 来自 浙江
1才看到你的发布时间,不睡觉是吧(
2024-07-22 来自 上海
0
有帮助,赞一个