9-16
-
罗马数字转阿拉伯
class Solution:
def romanToInt(self, s: str) -> int:
roman2int = {
‘I’ : 1,
‘V’ : 5,
‘X’ : 10,
‘L’ : 50,
‘C’ : 100,
‘D’ : 500,
‘M’ : 1000,
}result = 0 for letter in range(len(s)): if letter < len(s) - 1 and roman2int[s[letter]] < roman2int[s[letter+1]]: result -= roman2int[s[letter]] else: result += roman2int[s[letter]] return result
这道题首先是建立map {’’: int, ‘’: int}这样的形式
其次是Python在循环的时候会跟灵活.
-
找到共同的字符串
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
prefix = ‘’zipped = zip(*strs) for i in zipped: if len(set(i)) == 1: prefix += i[0] else: break return prefix
这道题关键是能熟练运用zip set对字符串的处理
zip可以把字符串整合成最短长度的矩阵
set可以取交集 把相同的字母删除
-
() [] {} 括号的匹配
class Solution:
def isValid(self, s: str) -> bool:
stack = []check = {'(':')', '[':']', '{':'}'} for i in s: if i in check: stack.append(i) elif len(stack) == 0 or check[stack.pop()] != i: return False return len(stack) == 0
这道题解题需要用到栈的知识
stack.append() 和 stack.pop() 然后再进行比较