Перебор английского алфавита с заменой символов по заданным правилам

Проверяйте правила по приоритету: сначала позиция 15, затем кратность 5 и 3, затем обычная английская буква. Для русского алфавита используйте []rune, а не байтовые индексы.

Короткий ответ

Что ответить на собеседовании

Проверяйте правила по приоритету: сначала позиция 15, затем кратность 5 и 3, затем обычная английская буква. Для русского алфавита используйте []rune, а не байтовые индексы.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо реализовать программу на Go, которая выводит последовательность символов английского алфавита от 'A' до 'Z' с учётом следующих преобразований:

  • Каждый символ печатается на отдельной строке.
  • Каждый третий символ заменяется его порядковым номером в алфавите (например, буква 'C' заменяется на число 3).
  • Каждый пятый символ заменяется соответствующей русской буквой с тем же порядковым номером (например, пятая буква 'E' выводится как 'Д', так как в русском алфавите 'А'‑'Д' занимают позиции 1‑5).
  • Пятнадцатый символ ('O') выводится в виде строки "Привет".
package main

import "fmt"

func main(){
    
}

Ответ

Проверяйте правила по приоритету: сначала позиция 15, затем кратность 5 и 3, затем обычная английская буква. Для русского алфавита используйте []rune, а не байтовые индексы.

Считаем Ё отдельной седьмой буквой русского алфавита:

func main() {
    russian := []rune("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ")
    for position := 1; position <= 26; position++ {
        switch {
        case position == 15: fmt.Println("Привет")
        case position%5 == 0: fmt.Println(string(russian[position-1]))
        case position%3 == 0: fmt.Println(position)
        default: fmt.Println(string(rune('A'+position-1)))
        }
    }
}

Нужен fmt. В диапазоне A–Z единственное пересечение правил 3 и 5 — позиция 15, её явно обрабатывает специальная ветка.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее