当前位置:实例文章 » HTML/CSS实例» [文章]面试题,持续更新

面试题,持续更新

发布人:shili8 发布时间:2025-01-22 12:09 阅读次数:0

**面试题持续更新**

**一、编程基础**

###1.1 算法与数据结构####1.1.1 数组和链表* **问题**: 编写一个函数,实现将两个有序链表合并为一个新的有序链表。
* **示例代码**:

def mergeTwoLists(l1, l2):
 # 创建一个新节点作为头结点 head = ListNode(0)
 current = head while l1 and l2:
 if l1.val < l2.val:
 current.next = l1 l1 = l1.next else:
 current.next = l2 l2 = l2.next # 移动到下一个节点 current = current.next # 如果有剩余的链表,直接连接 if l1:
 current.next = l1 elif l2:
 current.next = l2 return head.nextclass ListNode:
 def __init__(self, val=0, next=None):
 self.val = val self.next = next


####1.1.2 栈和队列* **问题**: 实现一个栈的push、pop和peek操作。
* **示例代码**:

class Stack:
 def __init__(self):
 self.stack = []
 # Push元素到栈顶 def push(self, x: int) -> None:
 self.stack.append(x)
 # 弹出栈顶元素 def pop(self) -> int:
 if not self.isEmpty():
 return self.stack.pop()
 else:
 raise IndexError("Stack is empty")
 # 查看栈顶元素(不弹出)
 def top(self) -> int:
 if not self.isEmpty():
 return self.stack[-1]
 else:
 raise IndexError("Stack is empty")
 # 检查是否为空 def isEmpty(self) -> bool:
 return len(self.stack) ==0# 测试用例stack = Stack()
stack.push(1)
stack.push(2)
print(stack.top()) # 输出:2print(stack.pop()) # 输出:2print(stack.isEmpty()) # 输出:False


###1.2 计算机网络####1.2.1 HTTP协议* **问题**: 解释HTTP请求和响应的基本结构。
* **示例代码**:

import requests# 发送GET请求response = requests.get(' />print(response.status_code) # 输出:200print(response.headers['Content-Type']) # 输出:text/html; charset=UTF-8# 发送POST请求data = {'key': 'value'}
response = requests.post(' data=data)
print(response.text) # 输出:响应内容


####1.2.2 TCP/IP协议* **问题**: 描述TCP和UDP的主要区别。
* **示例代码**:

import socket# 创建一个TCP连接tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_socket.connect(('www.example.com',80))

# 发送数据data = b'GET / HTTP/1.1r
Host: www.example.comr
r
'
tcp_socket.sendall(data)

# 接收响应response = tcp_socket.recv(1024)
print(response.decode()) # 输出:响应内容# 关闭连接tcp_socket.close()


###1.3 操作系统####1.3.1 进程和线程* **问题**: 解释进程和线程的区别。
* **示例代码**:

import threadingimport time# 创建一个线程def print_numbers():
 for i in range(10):
 print(i)
 time.sleep(1)

thread = threading.Thread(target=print_numbers)
thread.start()

# 主线程继续执行for i in range(5):
 print('Main thread:', i)
 time.sleep(1)


####1.3.2 文件系统* **问题**: 实现一个简单的文件复制程序。
* **示例代码**:

import osdef copy_file(src, dst):
 with open(src, 'rb') as src_file:
 with open(dst, 'wb') as dst_file:
 while True:
 chunk = src_file.read(4096)
 if not chunk:
 break dst_file.write(chunk)

# 测试用例copy_file('source.txt', 'destination.txt')


**二、数据结构与算法**

###2.1 数组和链表####2.1.1 数组* **问题**: 实现一个函数,查找给定数组中最小的元素。
* **示例代码**:

def find_min(arr):
 min_val = arr[0]
 for num in arr:
 if num < min_val:
 min_val = num return min_val# 测试用例arr = [5,2,8,1,9]
print(find_min(arr)) # 输出:1


####2.1.2 链表* **问题**: 实现一个函数,合并两个有序链表。
* **示例代码**:

class ListNode:
 def __init__(self, val=0, next=None):
 self.val = val self.next = nextdef merge_lists(l1, l2):
 # 创建一个新节点作为头结点 head = ListNode(0)
 current = head while l1 and l2:
 if l1.val < l2.val:
 current.next = l1 l1 = l1.next else:
 current.next = l2 l2 = l2.next # 移动到下一个节点 current = current.next # 如果有剩余的链表,直接连接 if l1:
 current.next = l1 elif l2:
 current.next = l2 return head.next# 测试用例l1 = ListNode(1)
l1.next = ListNode(3)
l1.next.next = ListNode(5)

l2 = ListNode(2)
l2.next = ListNode(4)
l2.next.next = ListNode(6)

print(merge_lists(l1, l2).val) # 输出:1


###2.2 栈和队列####2.2.1 栈* **问题**: 实现一个函数,判断栈是否为空。
* **示例代码**:

class Stack:
 def __init__(self):
 self.stack = []
 # Push元素到栈顶 def push(self, x: int) -> None:
 self.stack.append(x)
 # 弹出栈顶元素 def pop(self) -> int:
 if not self.isEmpty():
 return self.stack.pop()
 else:
 raise IndexError("Stack is empty")
 # 查看栈顶元素(不弹出)
 def top(self) -> int:
 if not self.isEmpty():
 return self.stack[-1]
 else:
 raise IndexError("Stack is empty")
 # 检查是否为空 def isEmpty(self) -> bool:
 return len(self.stack) ==0# 测试用例stack = Stack()
print(stack.isEmpty()) # 输出:True


####2.2.2 队列* **问题**: 实现一个函数,判断队列是否为空。
* **示例代码**:

class Queue:
 def __init__(self):
 self.queue = []
 # Push元素到队尾 def enqueue(self, x: int) -> None:
 self.queue.append(x)
 # 弹出队首元素 def dequeue(self) -> int:
 if not self.isEmpty():
 return self.queue.pop(0)
 else:
 raise IndexError("Queue is empty")
 # 查看队首元素(不弹出)
 def front(self) -> int:
 if not self.isEmpty():
 return self.queue[0]
 else:
 raise IndexError("Queue is empty")
 # 检查是否为空 def isEmpty(self) -> bool:
 return len(self.queue) ==0# 测试用例queue = Queue()
print(queue.isEmpty()) # 输出:True


###2.3树和图####2.3.1 树* **问题**: 实现一个函数,判断二叉树是否是平衡的。
* **示例代码**:

class TreeNode:
 def __init__(self, x):
 self.val = x self.left = None self.right = Nonedef is_balanced(root):
 if root is None:
 return True left_height = get_height

其他信息

其他资源

Top