Python 手写代码面试题, 按照题目要求写出对应的 Python 函数
Python 手写代码面试题, 按照题目要求写出对应的 Python 函数
QA
Step 1
Q:: 用 Python 实现一个二分查找算法
A:: def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
Step 2
Q:: 写一个 Python 函数计算 Fibonacci 数列的第 n 项
A:: def fibonacci(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a +
b
return b
Step 3
Q:: 用 Python 写一个快速排序算法
A:: def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quicksort(left) + middle + quicksort(right)
Step 4
Q:: 写一个 Python 函数检测一个字符串是否是回文
A:: def is_palindrome(s):
return s == s[::-1]