编程与算法
-
检查字符串是否是回文
def is_palindrome(s): return s == s[::-1]
-
计算数组中所有元素的和
def array_sum(arr): return sum(arr)
-
Java实现二分查找
public int binarySearch(int[] arr, int target) { int left = 0, right = arr.length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] == target) return mid; if (arr[mid] < target) left = mid + 1; else right = mid - 1; } return -1; }
-
找到数组中的第二大元素
def second_largest(arr): first, second = float('-inf'), float('-inf') for num in arr: if num > first: second = first first = num elif num > second and num != first: second = num return second
-
实现一个栈
class Stack: def __init__(self): self.stack = [] def push(self, item): self.stack.append(item) def pop(self): if not self.is_empty(): return self.stack.pop() def peek(self): if not self.is_empty(): return self.stack[-1] def is_empty(self): return len(self.stack) == 0
-
实现一个队列
class Queue: def __init__(self): self.queue = [] def enqueue(self, item): self.queue.append(item) def dequeue(self): if not self.is_empty(): return self.queue.pop(0) def is_empty(self): return len(self.queue) == 0
-
反转一个链表
class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def reverse_list(head): prev, curr = None, head while curr: next_temp =