fix(ru): align proofreading corrections with the Simplified Chinese original (#2004)

* docs(ru): correct proofreading issues in prose and code examples

* docs(ru): align proofreading edits with Simplified Chinese source

* fix(ru): repair generated Zig statements and complete comment translations
This commit is contained in:
Yudong Jin
2026-10-27 18:19:11 +08:00
committed by GitHub
parent 350f483801
commit 71a773df64
149 changed files with 675 additions and 649 deletions

View File

@@ -9,7 +9,7 @@ import random
def random_access(nums: list[int]) -> int:
"""Случайный доступ к элементу"""
# Случайным образом выбрать число из интервала [0, len(nums)-1]
# Случайный выбор числа из диапазона [0, len(nums)-1]
random_index = random.randint(0, len(nums) - 1)
# Получить и вернуть случайный элемент
random_num = nums[random_index]
@@ -19,7 +19,7 @@ def random_access(nums: list[int]) -> int:
# Обратите внимание: list в Python — это динамический массив, его можно расширять напрямую
# Для удобства обучения в этой функции list рассматривается как массив неизменяемой длины
def extend(nums: list[int], enlarge: int) -> list[int]:
"""Увеличить длину массива"""
"""Увеличение длины массива"""
# Инициализировать массив увеличенной длины
res = [0] * (len(nums) + enlarge)
# Скопировать все элементы исходного массива в новый массив
@@ -30,8 +30,8 @@ def extend(nums: list[int], enlarge: int) -> list[int]:
def insert(nums: list[int], num: int, index: int):
"""Вставить элемент num по индексу index в массив"""
# Сдвинуть элемент с индексом index и все последующие элементы на одну позицию назад
"""Вставка элемента num в массив по индексу index"""
# Сдвинуть элемент с индексом index и все последующие элементы на одну позицию вправо
for i in range(len(nums) - 1, index, -1):
nums[i] = nums[i - 1]
# Присвоить num элементу по индексу index
@@ -39,8 +39,8 @@ def insert(nums: list[int], num: int, index: int):
def remove(nums: list[int], index: int):
"""Удалить элемент по индексу index"""
# Сдвинуть все элементы после индекса index на одну позицию вперед
"""Удаление элемента по индексу index"""
# Сдвинуть все элементы после индекса index на одну позицию влево
for i in range(index, len(nums) - 1):
nums[i] = nums[i + 1]
@@ -61,7 +61,7 @@ def traverse(nums: list[int]):
def find(nums: list[int], target: int) -> int:
"""Найти заданный элемент в массиве"""
"""Поиск заданного элемента в массиве"""
for i in range(len(nums)):
if nums[i] == target:
return i

View File

@@ -12,14 +12,14 @@ from modules import ListNode, print_linked_list
def insert(n0: ListNode, P: ListNode):
"""Вставить узел P после узла n0 в связном списке"""
"""Вставка узла P в связный список после узла n0"""
n1 = n0.next
P.next = n1
n0.next = P
def remove(n0: ListNode):
"""Удалить первый узел после узла n0 в связном списке"""
"""Удаление первого узла после узла n0 из связного списка"""
if not n0.next:
return
# n0 -> P -> n1
@@ -29,7 +29,7 @@ def remove(n0: ListNode):
def access(head: ListNode, index: int) -> ListNode | None:
"""Доступ к узлу связного списка по индексу index"""
"""Доступ к узлу с индексом index в связном списке"""
for _ in range(index):
if not head:
return None
@@ -38,7 +38,7 @@ def access(head: ListNode, index: int) -> ListNode | None:
def find(head: ListNode, target: int) -> int:
"""Найти в связном списке первый узел со значением target"""
"""Поиск первого узла со значением target в связном списке"""
index = 0
while head:
if head.val == target:

View File

@@ -14,9 +14,9 @@ if __name__ == "__main__":
x: int = nums[1]
print("\nЭлемент по индексу 1: x =", x)
# Обновление элемента
# Изменение элемента
nums[1] = 0
print("\nПосле обновления элемента по индексу 1 до 0 nums =", nums)
print("\nПосле изменения значения элемента с индексом 1 на 0 nums =", nums)
# Очистить список
nums.clear()

View File

@@ -31,7 +31,7 @@ class MyList:
return self._arr[index]
def set(self, num: int, index: int):
"""Обновление элемента"""
"""Изменение элемента"""
if index < 0 or index >= self._size:
raise IndexError("индекс выходит за границы")
self._arr[index] = num
@@ -51,7 +51,7 @@ class MyList:
# При превышении вместимости по числу элементов запускается расширение
if self._size == self.capacity():
self.extend_capacity()
# Сдвинуть элемент с индексом index и все следующие элементы на одну позицию назад
# Сдвинуть элемент с индексом index и все следующие элементы на одну позицию вправо
for j in range(self._size - 1, index - 1, -1):
self._arr[j + 1] = self._arr[j]
self._arr[index] = num
@@ -63,7 +63,7 @@ class MyList:
if index < 0 or index >= self._size:
raise IndexError("индекс выходит за границы")
num = self._arr[index]
# Сдвинуть все элементы после индекса index на одну позицию вперед
# Сдвинуть все элементы после индекса index на одну позицию влево
for j in range(index, self._size - 1):
self._arr[j] = self._arr[j + 1]
# Обновить число элементов
@@ -107,9 +107,9 @@ if __name__ == "__main__":
num = nums.get(1)
print("Элемент по индексу 1: num =", num)
# Обновление элемента
# Изменение элемента
nums.set(0, 1)
print("После обновления элемента по индексу 1 до 0 nums =", nums.to_array())
print("После изменения значения элемента с индексом 1 на 0 nums =", nums.to_array())
# Проверка механизма расширения
for i in range(10):

View File

@@ -6,7 +6,7 @@ Author: krahets (krahets@163.com)
def dfs(nums: list[int], target: int, i: int, j: int) -> int:
"""Бинарный поиск: задача f(i, j)"""
"""Двоичный поиск: задача f(i, j)"""
# Если интервал пуст, целевой элемент отсутствует, вернуть -1
if i > j:
return -1
@@ -24,7 +24,7 @@ def dfs(nums: list[int], target: int, i: int, j: int) -> int:
def binary_search(nums: list[int], target: int) -> int:
"""Бинарный поиск"""
"""Двоичный поиск"""
n = len(nums)
# Решить задачу f(0, n-1)
return dfs(nums, target, 0, n - 1)
@@ -35,6 +35,6 @@ if __name__ == "__main__":
target = 6
nums = [1, 3, 6, 8, 12, 15, 23, 26, 31, 35]
# Бинарный поиск (двусторонне замкнутый интервал)
# Двоичный поиск (замкнутый интервал)
index = binary_search(nums, target)
print("Индекс целевого элемента 6 = ", index)

View File

@@ -6,8 +6,8 @@ Author: timi (xisunyy@163.com)
def binary_search(nums: list[int], target: int) -> int:
"""Бинарный поиск (двусторонне замкнутый интервал)"""
# Инициализировать двусторонне замкнутый интервал [0, n-1], то есть i и j указывают на первый и последний элементы массива соответственно
"""Двоичный поиск (замкнутый интервал)"""
# Инициализировать замкнутый интервал [0, n-1], то есть i и j указывают на первый и последний элементы массива соответственно
i, j = 0, len(nums) - 1
# Цикл завершается, когда диапазон поиска пуст (при i > j диапазон пуст)
while i <= j:
@@ -23,8 +23,8 @@ def binary_search(nums: list[int], target: int) -> int:
def binary_search_lcro(nums: list[int], target: int) -> int:
"""Бинарный поиск (лево замкнутый, право открытый интервал)"""
# Инициализировать лево замкнутый, право открытый интервал [0, n), то есть i и j указывают на первый элемент массива и позицию сразу за последним элементом соответственно
"""Двоичный поиск (интервал, замкнутый слева и открытый справа)"""
# Инициализация интервала [0, n), замкнутого слева и открытого справа: i указывает на первый элемент массива, а j — на позицию сразу за последним
i, j = 0, len(nums)
# Цикл завершается, когда диапазон поиска пуст (при i = j диапазон пуст)
while i < j:
@@ -43,10 +43,10 @@ if __name__ == "__main__":
target = 6
nums = [1, 3, 6, 8, 12, 15, 23, 26, 31, 35]
# Бинарный поиск (двусторонне замкнутый интервал)
# Двоичный поиск (замкнутый интервал)
index = binary_search(nums, target)
print("Индекс целевого элемента 6 = ", index)
# Бинарный поиск (лево замкнутый, право открытый интервал)
# Двоичный поиск (интервал, замкнутый слева и открытый справа)
index = binary_search_lcro(nums, target)
print("Индекс целевого элемента 6 = ", index)

View File

@@ -12,18 +12,18 @@ from binary_search_insertion import binary_search_insertion
def binary_search_left_edge(nums: list[int], target: int) -> int:
"""Бинарный поиск самого левого target"""
"""Двоичный поиск самого левого элемента target"""
# Эквивалентно поиску точки вставки target
i = binary_search_insertion(nums, target)
# target не найден, вернуть -1
if i == len(nums) or nums[i] != target:
return -1
# Найти target и вернуть индекс i
# target найден, возвращается индекс i
return i
def binary_search_right_edge(nums: list[int], target: int) -> int:
"""Бинарный поиск самого правого target"""
"""Двоичный поиск самого правого элемента target"""
# Преобразовать задачу в поиск самого левого target + 1
i = binary_search_insertion(nums, target + 1)
# j указывает на самый правый target, а i — на первый элемент больше target
@@ -31,7 +31,7 @@ def binary_search_right_edge(nums: list[int], target: int) -> int:
# target не найден, вернуть -1
if j == -1 or nums[j] != target:
return -1
# Найти target и вернуть индекс j
# target найден, возвращается индекс j
return j
@@ -41,7 +41,7 @@ if __name__ == "__main__":
nums = [1, 3, 6, 6, 6, 6, 6, 10, 12, 15]
print(f"\nМассив nums = {nums}")
# Бинарный поиск левой и правой границы
# Двоичный поиск левой и правой границы
for target in [6, 7]:
index = binary_search_left_edge(nums, target)
print(f"Индекс самого левого элемента {target} равен {index}")

View File

@@ -6,8 +6,8 @@ Author: krahets (krahets@163.com)
def binary_search_insertion_simple(nums: list[int], target: int) -> int:
"""Бинарный поиск точки вставки (без повторяющихся элементов)"""
i, j = 0, len(nums) - 1 # Инициализировать двусторонне замкнутый интервал [0, n-1]
"""Двоичный поиск точки вставки (без повторяющихся элементов)"""
i, j = 0, len(nums) - 1 # Инициализировать замкнутый интервал [0, n-1]
while i <= j:
m = (i + j) // 2 # Вычислить индекс середины m
if nums[m] < target:
@@ -15,14 +15,14 @@ def binary_search_insertion_simple(nums: list[int], target: int) -> int:
elif nums[m] > target:
j = m - 1 # target находится в интервале [i, m-1]
else:
return m # Найти target и вернуть точку вставки m
return m # target найден, возвращается точка вставки m
# target не найден, вернуть точку вставки i
return i
def binary_search_insertion(nums: list[int], target: int) -> int:
"""Бинарный поиск точки вставки (с повторяющимися элементами)"""
i, j = 0, len(nums) - 1 # Инициализировать двусторонне замкнутый интервал [0, n-1]
"""Двоичный поиск точки вставки (с повторяющимися элементами)"""
i, j = 0, len(nums) - 1 # Инициализировать замкнутый интервал [0, n-1]
while i <= j:
m = (i + j) // 2 # Вычислить индекс середины m
if nums[m] < target:
@@ -40,7 +40,7 @@ if __name__ == "__main__":
# Массив без повторяющихся элементов
nums = [1, 3, 6, 8, 12, 15, 23, 26, 31, 35]
print(f"\nМассив nums = {nums}")
# Бинарный поиск точки вставки
# Двоичный поиск точки вставки
for target in [6, 9]:
index = binary_search_insertion_simple(nums, target)
print(f"Индекс позиции вставки элемента {target} равен {index}")
@@ -48,7 +48,7 @@ if __name__ == "__main__":
# Массив с повторяющимися элементами
nums = [1, 3, 6, 6, 6, 6, 6, 10, 12, 15]
print(f"\nМассив nums = {nums}")
# Бинарный поиск точки вставки
# Двоичный поиск точки вставки
for target in [2, 6, 20]:
index = binary_search_insertion(nums, target)
print(f"Индекс позиции вставки элемента {target} равен {index}")

View File

@@ -24,7 +24,7 @@ def linear_search_linkedlist(head: ListNode, target: int) -> ListNode | None:
"""Линейный поиск (связный список)"""
# Обойти связный список
while head:
if head.val == target: # Найти целевой узел и вернуть его
if head.val == target: # Целевой узел найден, возвращается этот узел
return head
head = head.next
return None # Целевой узел не найден, вернуть None