1. Two Sum(两个数求和)
class Solution:
def twoSum(self, nums: 'List[int]', target: int) -> 'List[int]':
dicti = {}
for i, n in enumerate(nums):
if n in dicti:
return [dicti[n],i]
dicti[target-n] = i
344.Reverse String(反转字符串)
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
length = len(s)
for i in range(length//2):
s[i],s[length-1 - i] = s[length-1 - i], s[i]
151.Reverse Words in a String(翻转字符串里的单词)
在此题中有两种思路,但是不知道为什么第一种思路在spyder中可以运行成功在LeetCode里提交的时候不能成功。
思路一是先将字符串提取为字符串列表,然后将字符串置为空,最后在字符串列表中倒序将单个字符串拼接在字符串s中;
思路二是先将字符串倒序转换为一个个的字符列表,然后对字符列表中以空格为界将单个字符串再正序。
class Solution151_1:#思路1
def reverseWords(self, s: str) -> str:
list_str = s.split()
s = ""
for i in range(len(list_str)-1, -1, -1):
s += list_str[i]+" "
class Solution151_2:#思路2
def reverseWords(self, s: str) -> str:
s = list(" ".join(s.split()))[::-1]#将字符串转换为一个个的字符列表
i = 0
while i < len(s):
start = i
while i < len(s) and s[i]!= ' ':
i += 1
end = i - 1
while start < end:
s[start], s[end] = s[end], s[start]
start += 1; end -= 1
i += 1
return "".join(s)