Конвертация целого числа в строку без стандартных пакетов

Формируйте цифры справа налево, работая в отрицательной области: она включает минимальный int, который нельзя безопасно превратить в положительный через обычное отрицание.

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

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

Формируйте цифры справа налево, работая в отрицательной области: она включает минимальный int, который нельзя безопасно превратить в положительный через обычное отрицание.

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

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

Условие

Необходимо реализовать функцию, которая преобразует целое число (int) в строковое представление (string) без применения пакетов fmt, strconv и strings.Builder. Функция должна корректно работать как с положительными, так и с отрицательными значениями, включая проверку граничных случаев: 0, минимальное и максимальное значение типа int.

Ответ

Формируйте цифры справа налево, работая в отрицательной области: она включает минимальный int, который нельзя безопасно превратить в положительный через обычное отрицание.

Функция без импортов для стандартных 32/64-битных int:

func intString(n int) string {
    if n == 0 { return "0" }
    negative := n < 0
    if n > 0 { n = -n }
    var buffer [20]byte
    position := len(buffer)
    for n != 0 {
        position--
        buffer[position] = byte('0' + -(n % 10))
        n /= 10
    }
    if negative { position--; buffer[position] = '-' }
    return string(buffer[position:])
}

Остаток имеет модуль меньше 10, поэтому его отрицание безопасно даже для минимального int. Время O(числа цифр), вспомогательный буфер фиксированный; результирующая строка создаётся отдельно.

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

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

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

Подробнее