Инструмент для решения проблем, который вам следует знать

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

Сколько раз вы бегло просматривали проблему и начинали кодировать, прежде чем действительно поняли вопрос? Для очень простых проблем, которые могут работать. Но для более серьезных проблем вашему мозгу будет трудно держать все вместе. Здесь вам пригодится PEDAC, он помогает вам оставаться организованным и сосредоточенным, разбивая проблему на этапы: процесс, примеры, данные (структура), алгоритм и код.

Обработка проблемы

Во-первых, вы должны понять, что проблема просит вас сделать. КОДИРОВКА НЕ ТРЕБУЕТСЯ. Перефразируйте проблему своими словами. Вы можете записать это на листе бумаги, белой доске, блокноте или на другом том, что вам больше подходит. Также лучше всего определить входы и выходы проблемы.

Давайте попробуем использовать PEDAC для этой проблемы:

// Write a function that reverses a string passed into it.
function solution(str){

}

Подумайте, как лучше всего объяснить эту проблему кому-нибудь еще.

Спроси себя:

Что такое строка? Что я ввожу? Что я вывожу? Что я переворачиваю? Какие-нибудь правила?

Примеры и тестовые примеры

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

‘me’ => ‘em’
‘Hello’ => ‘olleH’
‘ ‘ => ‘ ‘

Структура данных

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

store the substrings in a variable called: newStr

Сосредоточьтесь на том, что для вас наиболее важно. Иногда меньшее - не всегда лучшее. Вы всегда можете реорганизовать свое решение позже.

Алгоритм

Ваш алгоритм - ваш ключ к успеху. Отсутствие алгоритма похоже на отсутствие плана здания, которое вы строите. Этот шаг определенно не из тех, которые нужно торопить. Алгоритмы может быть сложно создать, не забудьте вернуться к своим примерам и структуре данных, если вы застряли.

create an empty str variable called newStr
loop through the str starting at its length -1
increment by counting down 
at every index set it equal to the str variable
return the str

Код

И последнее, но не менее важное: момент, которого вы так долго ждали!

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

Возможно, это заняло немного больше времени, чем ожидалось, но оно того стоило!