Вопрос затрагивает оптимизацию работы с числами и строками.
Используйте буфер ([]byte) и заполняйте его с конца, чтобы избежать реверса цифр.
Проблема:
Преобразование числа в строку вручную требует разбора цифр, их конвертации в символы и реверса цифр.
Оптимизация:
Заранее вычисляем длину числа.
Заполняем буфер с конца.
Пример:
func intToStringFast(num int) string {
if num == 0 {
return "0"
}
negative := num < 0
if negative {
num = -num
}
// Вычисляем длину
length := 0
for tmp := num; tmp > 0; tmp /= 10 {
length++
}
// Буфер с запасом под знак
buf := make([]byte, length)
i := length - 1
for num > 0 {
buf[i] = byte('0' + num%10)
num /= 10
i--
}
if negative {
return "-" + string(buf)
}
return string(buf)
}