interview
python-handwritten-code
按照题目要求写出对应的 Python 函数

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]

用途

这些面试题主要考察候选人的基础算法和数据结构知识,尤其是他们用 Python 进行手写代码的能力。在实际生产环境中,这些基础算法和数据结构是开发复杂应用程序的基础。例如,二分查找和快速排序常用于数据检索和排序操作,Fibonacci 数列和回文检测则常用于特定的算法问题解决。\n

相关问题

🦆
写一个 Python 函数实现链表反转

class ListNode: def init(self, val=0, next=None): self.val = val self.next = next

def reverse_linked_list(head): prev = None current = head while current: next_node = current.next current.next = prev prev = current current = next_node return prev

🦆
用 Python 实现一个栈的数据结构

class Stack: def init(self): self.items = []

def is_empty(self): return self.items == []

def push(self, item): self.items.append(item)

def pop(self): return self.items.pop()

def peek(self): return self.items[-1]

def size(self): return len(self.items)

🦆
写一个 Python 函数检测两个字符串是否是字母异位词

def is_anagram(s1, s2): return sorted(s1) == sorted(s2)

🦆
用 Python 实现一个合并两个有序数组的函数

def merge_sorted_arrays(arr1, arr2): result = [] i, j = 0, 0 while i < len(arr1) and j < len(arr2): if arr1[i] < arr2[j]: result.append(arr1[i]) i += 1 else: result.append(arr2[j]) j += 1 result.extend(arr1[i:]) result.extend(arr2[j:]) return result