LeetCode精选TOP面试题——简单篇

LeetCode 精选 TOP 面试题——简单篇

TOP 面试题简单篇,以下解析为Python语言。

1.两数之和

题目:

解析:

1
2
3
4
5
6
7
8
9
10
# 哈希表
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
# 建立一个哈希表
hashtable = dict()
for i, num in enumerate(nums):
if target - num in hashtable:
return [hashtable[target - num], i]
hashtable[nums[i]] = i
return []

13.罗马数字转整数

题目:

解析:

1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def romanToInt(self, s: str) -> int:
Roman2Int = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
Int = 0

for index in range(len(s) - 1):
if Roman2Int[s[index]] < Roman2Int[s[index + 1]]:
Int -= Roman2Int[s[index]]
else:
Int += Roman2Int[s[index]]

return Int + Roman2Int[s[-1]]

14.最长公共前缀

题目:

解析:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
res = ''

# 求出所有字符串中最短的字符串长度
str_len = len(strs[0])
for str in strs:
if len(str) < str_len:
str_len = len(str)

# 字符串中一个一个字符比较
for i in range(str_len):
c = strs[0][i]
for str in strs:
if str[i] != c:
return res
res += c
return res