Migrate to Zensical (#1869)

* Fix Russian Ruby code extraction.

* Add zensical configs.
This commit is contained in:
Yudong Jin
2026-03-29 05:41:25 +08:00
committed by GitHub
parent bc4c5ec414
commit 7a78369e4c
84 changed files with 1302 additions and 445 deletions
@@ -4,7 +4,7 @@ Created Time: 2024-05-21
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
=end
# ## Алгоритм бэктрекинга: n ферзей ###
### Алгоритм бэктрекинга: n ферзей ###
def backtrack(row, n, state, res, cols, diags1, diags2)
# Когда все строки уже обработаны, записать решение
if row == n
@@ -31,7 +31,7 @@ def backtrack(row, n, state, res, cols, diags1, diags2)
end
end
# ## Решить задачу о n ферзях ###
### Решить задачу о n ферзях ###
def n_queens(n)
# Инициализировать доску размера n*n, где 'Q' обозначает ферзя, а '#' — пустую клетку
state = Array.new(n) { Array.new(n, "#") }
@@ -4,7 +4,7 @@ Created Time: 2024-05-22
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
=end
# ## Алгоритм бэктрекинга: все перестановки I ###
### Алгоритм бэктрекинга: все перестановки I ###
def backtrack(state, choices, selected, res)
# Когда длина состояния равна числу элементов, записать решение
if state.length == choices.length
@@ -28,7 +28,7 @@ def backtrack(state, choices, selected, res)
end
end
# ## Все перестановки I ###
### Все перестановки I ###
def permutations_i(nums)
res = []
backtrack([], nums, Array.new(nums.length, false), res)
@@ -4,7 +4,7 @@ Created Time: 2024-05-22
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
=end
# ## Алгоритм бэктрекинга: все перестановки II ###
### Алгоритм бэктрекинга: все перестановки II ###
def backtrack(state, choices, selected, res)
# Когда длина состояния равна числу элементов, записать решение
if state.length == choices.length
@@ -30,7 +30,7 @@ def backtrack(state, choices, selected, res)
end
end
# ## Все перестановки II ###
### Все перестановки II ###
def permutations_ii(nums)
res = []
backtrack([], nums, Array.new(nums.length, false), res)
@@ -7,7 +7,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
require_relative '../utils/tree_node'
require_relative '../utils/print_util'
# ## Предварительный обход: пример 1 ###
### Предварительный обход: пример 1 ###
def pre_order(root)
return unless root
@@ -7,7 +7,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
require_relative '../utils/tree_node'
require_relative '../utils/print_util'
# ## Предварительный обход: пример 2 ###
### Предварительный обход: пример 2 ###
def pre_order(root)
return unless root
@@ -7,7 +7,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
require_relative '../utils/tree_node'
require_relative '../utils/print_util'
# ## Предварительный обход: пример 3 ###
### Предварительный обход: пример 3 ###
def pre_order(root)
# Отсечение
return if !root || root.val == 3
@@ -7,32 +7,32 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
require_relative '../utils/tree_node'
require_relative '../utils/print_util'
# ## Проверка, является ли текущее состояние решением ###
### Проверка, является ли текущее состояние решением ###
def is_solution?(state)
!state.empty? && state.last.val == 7
end
# ## Записать решение ###
### Записать решение ###
def record_solution(state, res)
res << state.dup
end
# ## Проверка допустимости этого выбора в текущем состоянии ###
### Проверка допустимости этого выбора в текущем состоянии ###
def is_valid?(state, choice)
choice && choice.val != 3
end
# ## Обновить состояние ###
### Обновить состояние ###
def make_choice(state, choice)
state << choice
end
# ## Восстановить состояние ###
### Восстановить состояние ###
def undo_choice(state, choice)
state.pop
end
# ## Алгоритм бэктрекинга: пример 3 ###
### Алгоритм бэктрекинга: пример 3 ###
def backtrack(state, choices, res)
# Проверить, является ли текущее состояние решением
record_solution(state, res) if is_solution?(state)
@@ -4,7 +4,7 @@ Created Time: 2024-05-22
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
=end
# ## Алгоритм бэктрекинга: сумма подмножеств I ###
### Алгоритм бэктрекинга: сумма подмножеств I ###
def backtrack(state, target, choices, start, res)
# Если сумма подмножества равна target, записать решение
if target.zero?
@@ -26,7 +26,7 @@ def backtrack(state, target, choices, start, res)
end
end
# ## Решить задачу суммы подмножеств I ###
### Решить задачу суммы подмножеств I ###
def subset_sum_i(nums, target)
state = [] # Состояние (подмножество)
nums.sort! # Отсортировать nums
@@ -4,7 +4,7 @@ Created Time: 2024-05-22
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
=end
# ## Алгоритм бэктрекинга: сумма подмножеств I ###
### Алгоритм бэктрекинга: сумма подмножеств I ###
def backtrack(state, target, total, choices, res)
# Если сумма подмножества равна target, записать решение
if total == target
@@ -4,7 +4,7 @@ Created Time: 2024-05-22
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
=end
# ## Алгоритм бэктрекинга: сумма подмножеств II ###
### Алгоритм бэктрекинга: сумма подмножеств II ###
def backtrack(state, target, choices, start, res)
# Если сумма подмножества равна target, записать решение
if target.zero?
@@ -30,7 +30,7 @@ def backtrack(state, target, choices, start, res)
end
end
# ## Решить задачу суммы подмножеств II ###
### Решить задачу суммы подмножеств II ###
def subset_sum_ii(nums, target)
state = [] # Состояние (подмножество)
nums.sort! # Отсортировать nums