Предполагая, что текст может быть передан в обратном порядке (разумное предположение, так как строки в большинстве языков поддерживаются массивом символов с доступом O(1)
), создайте число, читая текст в обратном порядке, пока вы не нажмете символ, который не цифра или текст был использован полностью.
numDigits = 0
number = 0
while(numDigits <> length and characterAt[length - numDigits] is a digit)
number = number + (parseCharacterAt[length - numDigits] * (10 ^ numDigits))
numDigits = numDigits + 1
end while
if(numDigits is 0)
Error ("No digits at the end")
else return number
Примечание: (10 ^ numDigits) можно легко оптимизировать с помощью другой переменной.