Введение

Эй, товарищ читатель! Ищете подробное объяснение этой, казалось бы, простой проблемы LeetCode. Круто 😎, вы пришли в нужное место! Мой метод довольно стандартный, состоит из 4 шагов. Я прочитаю подсказку и примеры, поделюсь своими мыслями и сделаю заметки, а затем шаг за шагом создам решение. Наконец, я предоставлю решение и вынос.

Врываемся в бой…

Подсказка и примеры

Implement the myAtoi(string s) function, which converts a string to a 32-bit signed integer (similar to C/C++'s atoi function).
The algorithm for myAtoi(string s) is as follows:

Реализуйте функцию myAtoi(string s), которая преобразует строку в 32-разрядное целое число со знаком (аналогично функции atoi в C/C++). Алгоритм для myAtoi(string s) следующий:

  1. Прочтите и игнорируйте начальные пробелы.
  2. Проверьте, является ли следующий символ (если он еще не находится в конце строки) '-' или '+'. Прочтите этот символ, если он есть. Это определяет, будет ли окончательный результат отрицательным или положительным соответственно. Предположим, что результат положительный, если ни один из них не присутствует.
  3. Считайте следующие символы, пока не будет достигнут следующий нецифровой символ или конец ввода. Остальная часть строки игнорируется.
  4. Преобразуйте эти цифры в целое число (например, "123" -> 123, "0032" -> 32). Если цифры не были прочитаны, то целое число равно 0. При необходимости измените знак (из шага 2).
  5. Если целое число выходит за пределы диапазона 32-разрядных целых чисел со знаком [-231, 231 - 1], зафиксируйте целое число, чтобы оно оставалось в этом диапазоне. В частности, целые числа меньше -231 должны быть сжаты до -231, а целые числа больше 231 - 1 должны быть сжаты до 231 - 1.
  6. Возвращает целое число в качестве окончательного результата.
  7. Возвращает целое число в качестве окончательного результата.

Первые мысли

Создание решения

Вы могли заметить, что я использовал мясорубку, с которой мы здесь имеем дело. Нам дан вход (мясо), пустая функция (машина) и говяжий фарш, выходящий с другого конца (решение). Именно так я и хотел бы решить эту проблему. Ключевым моментом здесь является понимание того, что должно быть под капотом. Итак, давайте воспользуемся дедукцией и подсказками, чтобы построить эту дробилку!

Заключение

Ссылки