TypeError: ‘str‘ object does not support item assignment

可以使用 s[i] 的方法读取python字符串的内容,但如果写如下代码就会报错

num[i] = '9'

python中的字符串跟C++的有点不一样,python的字符串是一种不可变对象(immutabel object),意味着只读不写,线程安全。C++的字符串我们可以直接使用s[0]='0’这种语法对字符串中的某个字符赋值,而python不可以。
在python中,可以先将字符串转成列表,然后再进行赋值操作,再将其转变回来。

class Solution:
    def monotoneIncreasingDigits(self, n: int) -> int:
        num = list(str(n))
        for i in range(len(num)-1, 0, -1):
            if num[i] < num[i-1]:
                num[i:] = '9'*(len(num)-i)
                num[i-1] = str(int(num[i-1])-1)
        
        return int("".join(num))

你可能感兴趣的:(python基础知识,leetcode,算法,职场和发展)