前言
使用语言 Python, 只针对 LC Medium 和 Hard 题, 面向面试刷题
Note: 除非你面前端 (加上 JS) , 否则统一使用 Python 进行刷题
基本操作
s = "hello"
s[0] s[-1]
len(s)
s[0] = "H"
|
s1 + s2 char * 3
"".join(["a", "b", "c"]) "-".join(["a", "b", "c"])
list("abc")
s[1:3] s[:3] s[2:] s[::-1]
|
查找
s.find("ll") s.index("ll") "ll" in s s.count("l")
|
判断
s.isalpha() s.isdigit() s.isalnum() s.startswith("he") s.endswith("lo")
|
转换
s.lower() s.upper() s.strip() s.replace("l", "x") s.split(" ")
s = "eat" sorted(s)
|
构建字符串
result = [] for char in s: result.append(char) return "".join(result)
result = "" result += "a"
|
回文判断
s == s[::-1]
def isPalindrome(s): left, right = 0, len(s) - 1 while left < right: if s[left] != s[right]: return False left += 1 right -= 1 return True
|
字符比较
'a' < 'b' ord('a') chr(97)
'A' < 'a'
|
题目
LC 3
实际上是 set 加上 two pointer
LC 5
需要一个方法 expand(left, right), s[left] == s[right] 的情况下 left -= 1, right += 1
LC 68
不算特别复杂,但是要考虑不同的情况
LC 165
用 split('.') 把 version 中的数字分开
LC 151
如果在不用 split() 的情况下, 用 i 去跳过空格, 用 j 去找单词, 然后添加 s[i:j]