0
点赞
收藏
分享

微信扫一扫

力扣每日一题(三十三)

墨春 2022-01-16 阅读 50

仅以此纪录每日LootCode所刷题目(第一次周赛做出两道题...以前都是一道题,希望三道可以快点来)。

题目描述:

示例:

 

思路:

这道题我的思路是先补齐,后分割。我们首先判断字符串的长度是否可以被k整除,可以被整除就代表不需要补齐,不可以被整除就需要补齐。注意补齐的字母题中已经给出。之后就按照k值分割即可。

代码:

class Solution:
def divideString(self, s: str, k: int, fill: str) -> List[str]:
length = len(s)
if length % k == 0:
next
else:
a = length % k
b = k - a
s += b * fill
list1 = []
length1 = len(s)
c = int(length1 / k)
for i in range(c):
list1.append(s[k*i:k*(i+1)])
return list1

 题目描述:

 

示例:

 

思路:

我的思路是判断将target变为1需要几步。这道题主要是判断maxDoubles是否大于0,如果maxDoubles为0,那么想要得到结果只能不停的加一,那么结果只需要加上(target-1的值即可)。当maxDouble>0的时候,如果此时是奇数,就-1;是偶数就除二,直到target变成1位置,返回结果。

代码:

class Solution:
def minMoves(self, target: int, maxDoubles: int) -> int:
count = 0
while target > 1 and maxDoubles > 0:
if target % 2 == 0:
count += 1
maxDoubles -= 1
target = int(target/2)
else:
count += 1
target -= 1
if target == 1:
return count
else:
count = count + target - 1
return count

 

举报

相关推荐

0 条评论