Подсчитайте символы и замените префикс длиной max(0, count−4) на #, сохранив последние четыре символа.
Функция скрытия всех символов кроме последних четырёх
Подсчитайте символы и замените префикс длиной max(0, count−4) на #, сохранив последние четыре символа.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализуйте функцию, которая принимает строку и возвращает новую строку, в которой все символы, кроме последних четырёх, заменены символом "#".
Ответ
Подсчитайте символы и замените префикс длиной max(0, count−4) на #, сохранив последние четыре символа.
func mask(_ text: String) -> String {
let hiddenCount = max(0, text.count - 4)
return String(repeating: "#", count: hiddenCount) + String(text.suffix(4))
}
Пустая строка и строки длиной до четырёх символов остаются без изменений. Swift String.count и suffix работают с Character, поэтому составной emoji считается пользовательским символом, а не отдельными UTF-8-байтами. Это визуальная маскировка, не шифрование: исходную строку нельзя продолжать отправлять в логи или скрытые атрибуты интерфейса.