Ctrl K

Снисходительное чтение числа

Средняя
Датчики присылают показания строкой raw, и формат у них вольный: могут быть лишние пробелы, хвосты с единицами измерения и прочий мусор. Нужно вытащить из начала строки целое число по таким правилам: 1. Пропустите все пробелы ' ' в начале строки. 2. Если следующий символ — '-' или '+', прочитайте его как знак числа. Знака нет — число положительное. Знак может быть только один. 3. Читайте цифры подряд, пока не встретится не-цифра или не кончится строка. Ведущие нули на значение не влияют. Если ни одной цифры прочитать не удалось, результат — 0. 4. Результат должен поместиться в 32-битное знаковое целое: если число меньше −2³¹, верните −2³¹, а если больше 2³¹ − 1 — верните 2³¹ − 1. Всё, что идёт после прочитанных цифр, игнорируется. Верните полученное число.
Пример 1
raw='   +0075 kg' → 75

Пробелы в начале пропускаются, знак «+», затем цифры «0075» — это 75; на пробеле чтение останавливается.

Пример 2
raw='-99999999999 m' → -2147483648

Число меньше −2³¹, поэтому ответ прижимается к нижней границе −2147483648.

Пример 3
raw='v2.5' → 0

Первый значимый символ — буква «v», а не цифра и не знак, поэтому число не прочитано и ответ 0.

Ограничения
  • 0 ≤ len(raw) ≤ 200
  • raw состоит из латинских букв (строчных и заглавных), цифр, пробелов и символов +, -, .
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный фрагмент без повторов СредняяСамый длинный зеркальный кусок СредняяЗмейка по строкам СредняяЧисло римскими цифрами СредняяСлова с кнопочного телефона Средняя
загружаем Python…
Вход
raw='   +0075 kg'
Ожидается
75

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 187 тестов на сервере, включая скрытые.