1、最后一个单词的长度
题目描述:https://leetcode.cn/problems/length-of-last-word/
class Solution:
def lengthOfLastWord(self, s: str) -> int:
cnt, p = 0, len(s) - 1
while s[p] == ' ':
p -= 1
while p >= 0 and s[p] != ' ':
p -= 1
cnt += 1
return cnt
2、加一
题目描述:https://leetcode.cn/problems/plus-one/
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
n = len(digits)
for i in range(n-1, -1, -1):
if digits[i] == 9:
digits[i] = 0
else:
digits[i] += 1
return digits
digits.insert(0, 1)
return digits
3、二进制求和
题目描述:https://leetcode.cn/problems/add-binary/
class Solution:
def addBinary(self, a: str, b: str) -> str:
flag = 0
res = []
a = a[::-1]
b = b[::-1]
for i in range(max(len(a),len(b))):
if i >= len(a):
num1 = 0
else:
num1 = a[i]
if i >= len(b):
num2 = 0
else:
num2 = b[i]
temp = int(num1) + int(num2) + flag
if temp >= 2:
temp -= 2
flag = 1
else:
flag = 0
res.append(temp)
if flag == 1:
res.append(1)
res = [str(i) for i in res]
return ''.join(res[::-1])
4、x的平方根
题目描述:https://leetcode.cn/problems/sqrtx/
class Solution:
def mySqrt(self, x: int) -> int:
l, r, res = 0, (x//2)+1, -1
while l <= r:
mid = (l + r) // 2
if mid * mid <= x:
res = mid
l = mid + 1
else:
r = mid - 1
return res
5、爬楼梯
题目描述:https://leetcode.cn/problems/climbing-stairs/
class Solution:
@lru_cache(None)
def climbStairs(self, n: int) -> int:
if n == 0:
return 0
elif n == 1:
return 1
elif n == 2:
return 2
return self.climbStairs(n - 1) + self.climbStairs(n - 2)
6、删除排序链表中的重复元素
题目描述:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
if not head:
return head
cur = head
while cur.next:
if cur.val == cur.next.val:
cur.next = cur.next.next
else:
cur = cur.next
return head