Leetcode brush questions (string addition, minimum interval containing each query, simulated walking robot, maximum sum of circular sub-arrays, maximum value satisfying inequality, sum of four numbers, sum of distances in trees)

Table of contents

1. String addition

2. Contains the minimum interval for each query

3. Simulate walking robot

4. Maximum sum of circular subarrays

5. The maximum value that satisfies the inequality

6. The sum of four numbers

7. The sum of the distances in the tree


1. String addition

class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        i = len(num1) - 1     # num1的末位
        j = len(num2) - 1     # num2的末位
        carry = 0     # 进位位
        res = ""      # 最终的结果字符串
        while i >= 0 or j >= 0:
            # 只要有一个数字还没处理完,就得继续处理,因为是所有和
            # 如果其中一个数字当前处理位已经超过最高位了(索引小于0),参与计算值的为0,即相当于高位补零
            # 每一位的结果等于两个字符串当前位的数字之和再加进位位
            if i < 0 and j >= 0:        # 此时只剩下num2整数位数还没结束
                add_sum = 0 + int(num2[j]) + carry       #此位的和就等于0+num2数组这一位的值+进位上来的值         
            if j < 0 and i >= 0:
                add_sum = int(num1[i]) + 0 + carry       #此位的和就等于0+num1数组这一位的值+进位上来的值     
            elif i >= 0 and j >= 0:    # 两个位都存在
                add_sum = int(num2[j]) + int(num1[i]) + carry
            res = str(add_sum % 10) + res               # 结果模10为当前位的值,插入到当前结果的最前面,即高位
            carry = add_sum // 10    # 把进位计算一下
            i -= 1
            j -= 1    # 两个指针都往前进位1个
        if carry == 1: # 还有进位存在,那在最终结果前面加一即可
            res = "1" + res 
        return res      # 返回值

2. Contains the minimum interval for each query

3. Simulate walking robot

4. Maximum sum of circular subarrays

5. The maximum value that satisfies the inequality

6. The sum of four numbers

7. The sum of the distances in the tree

Guess you like

Origin blog.csdn.net/Starinfo/article/details/131776699