被统计折磨了一天,晚上有点没心思做题……
1. 计算字符串的数字和
难度
- Easy
- Medium
- Hard
完成情况
- 独立完成
- 参考思路
- 参考答案
思路
按题意模拟即可。
代码
class Solution:
def digitSum(self, s: str, k: int) -> str:
while(len(s) > k):
t = ""
sum = 0
for i in range(len(s)):
sum += int(s[i])
if i == len(s) - 1 or (i + 1) % k == 0:
t += str(sum)
sum = 0
s = t
return s
2. 完成所有任务需要的最少轮数
难度
- Easy
- Medium
- Hard
完成情况
- 独立完成
- 参考思路
- 参考答案
思路
差点被绕进去了。
首先要明白,要最少轮数,则尽可能安排3个任务一起做,只有凑不齐3的时候,再去补2。显然,一个数模3,只有0、1、2三种情况,第一种情况直接加上商即可,第二种情况和第三种情况要加上商的向下取整再加一。因为第二种情况要拆除一个3,和1凑成两个2;第三种情况则是刚好多出一个2。还要注意,唯独1是特殊的。因为此时没有多余的3能拆,故必须返回-1。
代码
class Solution:
def minimumRounds(self, tasks: List[int]) -> int:
dic = {}
ans = 0
for task in tasks:
if task not in dic: dic = 1
else: dic += 1
for cnt in dic.values():
if cnt == 1: return -1
ans += int(cnt / 3)
if cnt % 3 != 0: ans += 1
return ans
3. 转角路径的乘积中最多能有几个尾随零
难度
- Easy
- Medium
- Hard
完成情况
- 独立完成
- 参考思路
- 参考答案
思路
参考这篇
累乘能得到的尾随0数量,实际上跟所有数字中总的因子2和因子5的最小数量有关,而数字范围有限,所以可以先递归枚举所有数字中因子2、5的数量。
要使得数量最多,显然要路径最长,那么可以枚举由上到下过程中左右拐弯,和由下到上左右拐弯的情况。
代码
4. 相邻字符不同的最长路径
难度
- Easy
- Medium
- Hard
完成情况
- 独立完成
- 参考思路
- 参考答案
思路
参考这篇
有点烦躁,总是出错。
代码
Comments NOTHING