在努力的路上很累,但有时候停一下,回过头一看,才发现自己已经走了好远
——某没到二十岁但幻想自己是个作家的青年

我依稀记得,在大一的时候,我的C语言老师讲课设时举的例子就是大数运算
当时我是真觉得写一个这样的课设好难,现在回过头看看,好像也不过如此

def solve(self, s: str, t: str) -> str:
    def solve(self , s: str, t: str) -> str:
        m = len(s) - 1                        # 首先获取s和t的长度,后面遍历s和t的时候使用
        n = len(t) - 1                        # 此处减1为的是直接获取数组最后一位下标
                                            
        if m < 0:                           # 如果s或t为空,则返回不为空的那个字符串
            return t                        # 其实可以不写,但感觉写上会快点?
        if n < 0:
            return s
                                            
        tmp = 0                               # tmp为进位,res负责保存新数组
        res = ''                              # 在原数组上修改也行,但是我懒
        while m >= 0 or n >= 0 or tmp > 0:  # 只在s和t均遍历完且进位不为1的情况下跳出循环
            if m >= 0:
                tmp += int(s[m])            # 在计算s的某一位和t的后一位时自动把进位加上了
            if n >= 0:
                tmp += int(t[n])
                                            
            res = str(tmp % 10) + res       # 然后求余,进新字符串
            tmp //= 10                      # 求进位,这里是整除
            n -= 1                            # 修改下标位置
            m -= 1
        
        return res

虽然它肯定不是最简洁的,但我懒得改了
有时我真想吐槽自己,把Python用得跟C一样(也许C能调函数呢?还是我菜了)

那这个时候可能有同学就要问了:“既然你都用了Python那有没有更简单的方法啊?”
诶,那还真有

def solve(self , s: str, t: str) -> str:
    return str(int(s) + int(t))

简洁明了,一目了然
那为什么不这样写呢?
那当然是因为 调函数没意思 要搞明白大数加法到底是怎么实现的辣