力扣题库刷题笔记682-棒球比赛

1、题目如下:

力扣题库刷题笔记682-棒球比赛_第1张图片

力扣题库刷题笔记682-棒球比赛_第2张图片 

2、个人Python代码实现如下:

力扣题库刷题笔记682-棒球比赛_第3张图片

        代码如下:

class Solution:

    def calPoints(self, operations: List[str]) -> int:

        i = 0                                               #用于遍历元素的下标

        while i < len(operations):                          #当没有遍历完时,一直遍历

            if operations[i] == 'C':                        #如果元素为C,删除当前元素及上一个元素,并从当前元素上一个元素继续遍历

                del operations[i-1: i+1]

                i -= 1                                      

            elif operations[i] == 'D':                      #如果元素为D,将当前元素赋值为前一个元素的2倍,并从当前元素的下一个元素继续遍历

                operations[i] = operations[i-1] * 2

                i += 1                                          

            elif operations[i] == '+':                      #如果元素为+,将当前元素赋值为前两个元素之和,并从当前元素的下一个元素继续遍历

                operations[i] = operations[i-2] + operations[i-1]

                i += 1

            else:                                           #如果元素为数字,转换成整型

                operations[i] = int(operations[i])

                i += 1

        return sum(operations)

3、力扣题解代码Copy:

        对于个人,难点在于下标的重新赋值以及循环的退出。 再看力扣题解,思路几乎一样,但是题解使用的是栈的思路,在如果解决循环这里更优:

力扣题库刷题笔记682-棒球比赛_第4张图片

 

你可能感兴趣的:(力扣,leetcode,笔记,算法)