При решении проблемы с алгоритмом есть шаги, которые помогут вам расслабиться, иметь четкое представление о направлении и повысить вашу уверенность в попытке решить проблему. Ниже приведены четыре (4) основных шага, которым необходимо следовать.

Понять проблему (0001)

Очень важно понять проблему, которая стоит перед вами, прежде чем пытаться ее решить. Я вижу, что многие новички, столкнувшись с проблемой, часто переходят к кодированию, что является неправильным по следующим причинам:

  1. Вы будете писать код с неясным сознанием, так как у вас нет четкой дорожной карты, которой нужно следовать.
  2. Вы, вероятно, запутаетесь на этом пути, что сделает проблему более сложной, чем кажется.
  3. Вы, вероятно, увеличите свое напряжение в решении проблемы, то есть работаете под сильным давлением.

Итак, теперь вопрос должен заключаться в том, как я понимаю проблему? Чтобы понять проблему, вы должны сначала переопределить проблему своими словами, я предлагаю произнести это вслух и подтвердить, что это то, что вы намеревались сделать. Например:

Поставленная задача:напишите функцию для сложения двух чисел.

Переопределение задачи: напишите функцию, которая может складывать два числа.

Убедитесь, что при переопределении проблемы она должна быть переопределена таким образом, чтобы помочь вам лучше понять проблему.

Знать ввод и ожидаемый результат проблемы (0010)

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

Теперь, когда у вас есть более четкое представление о входных данных и ожидаемых результатах, вам нужно будет логически протестировать проблему с простейшими входными данными, а затем написать подход для достижения этого, а затем изменить свой подход для решения более сложной задачи.

Запишите фактический код (0011)

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

Как только код заработает, как задумано, с заданными входными данными, чтобы получить требуемый результат, вы можете перейти к последнему и заключительному шагу.

Рефакторинг кода (0100)

Теперь пришло время очистить ваш уже работающий код, сделав его более читабельным, а также поработав над временной или пространственной сложностью, в зависимости от того, что вы хотите найти. Ниже приведен пример кода.

Проблема: Напишите программу, которая может подсчитывать и возвращать количество символов (без учета регистра) в заданной строке, исключая пробелы и специальные символы.

Узнайте о Шаблоне счетчика частоты для решения алгоритмических задач.