Подмена четвертого символа строки на букву 'Ы'

Преобразуйте строку в []rune и замените элемент с индексом 3. Для строки «привет» результат будет «приЫет».

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

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

Преобразуйте строку в []rune и замените элемент с индексом 3. Для строки «привет» результат будет «приЫет».

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

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

Условие

Необходимо реализовать функцию, которая принимает строку (например, "привет"), заменяет её четвертый символ на русскую букву 'Ы' и корректно обрабатывает случаи, когда длина строки меньше четырёх символов, возвращая исходную строку без изменений.

Ответ

Преобразуйте строку в []rune и замените элемент с индексом 3. Для строки «привет» результат будет «приЫет».

Индексирование string работает с байтами, поэтому для кириллицы нельзя просто заменить четвёртый байт.

func replaceFourth(s string) string {
    chars := []rune(s)
    if len(chars) < 4 {
        return s
    }
    chars[3] = 'Ы'
    return string(chars)
}

Время и память — O(n). Здесь символом считается кодовая точка Unicode: составные эмодзи и буквы с отдельными комбинируемыми знаками могут занимать несколько рун. Для пользовательских графем нужен другой способ сегментации.

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

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

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

Подробнее