#错误思路
列表最后一位加1,判断最后一位是否为9然后这样会陷入死循环倒数第二是不是也是9,与其这个我们干脆就把思路换一下
#更改后的思路
列表-数字-数字+1-列表
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
num_str = ''
for a in digits:
num_str += str(a)
num_str = int(num_str) + 1
num_str = str(num_str)
num_str = ','.join(num_str)
num_str = num_str.split(',')
return [int(b) for b in num_str]
可以看成以K为切分两段字符串,然后前后位置对调,其中要解决就是K大约7后变化,那我们就除7取余数来解决
#这里7代表给你的列表长度
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
l = len(nums)
k = k % l
nums[:] = nums[l-k:] + nums[:l-k]
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
1.末尾有0去0后反转
2.开头有-,-保持不变后面反转
class Solution:
def reverse(self, x: int) -> int:
new_x = '-'
x = str(x)
x = x[::-1]
while x[-1] == 0:
x = x[:-1]
if x[-1] == '-':
x = x[:-1]
while x[-1] == 0:
x = x[:-1]
new_x += x
x = new_x
if int(x) < -2**31 or int(x) >2**31-1:
return 0
else:
return int(x)
有更加好的思路,或者解题方法评论区留言谢谢