- Reverse String
思路:主要是彻底弄清楚string类型和list类型的异同点。
相同点:都是序列型数据,可以s[0]输出字符串的第一个字母,list[0]输出列表中的第一个元素。都可以用+进行字符串的连接或者列表的添加元素
不同点:string类型不能用append()函数,他不能在原处进行修改,譬s[0]='a'
两种类型的互相转化,string转化为list可以通过split()函数,List转化为string可以通过join()函数。
class Solution(object):
def reverseString(self, s):
"""
:type s: str
:rtype: str
"""
return s[::-1]
- Baseball Game
思路:典型的堆栈问题。需要一个新的数组来存储对应的分数的变动情况。注意不同操作的先后顺序很重要,需要先检验出有没有无效字符,再去进行相加操作。堆栈的两个经典操作pop()和append()用好就可以了。
class Solution(object):
def calPoints(self, ops):
"""
:type ops: List[str]
:rtype: int
"""
history = []
for i in range(len(ops)):
if ops[i] == 'C':
history.pop()
elif ops[i] == 'D':
history.append(history[-1]*2)
elif ops[i] == '+':
history.append(history[-1]+history[-2])
else:
history.append(int(ops[i]))
return sum(history)