Сегодня разобрался с алгоритмами. Согласно курсу алгоритм «является самодостаточным пошаговым набором операций, которые необходимо выполнить. Алгоритмы выполняют расчеты, обработку данных и/или автоматизированные логические задачи».
Это было немного иначе, чем в обычных классах, где мне давали вопрос для решения, а затем давали список методов и свойств, которые я мог использовать для поиска решения. Курс прошел через краткое изложение методов, которые вам понадобятся, прежде чем дать мне возможность попытаться решить эту проблему.
Первый вопрос был: реализовать алгоритм для определения того, содержит ли строка все уникальные символы (например, нет повторяющихся символов).
Мне сказали, что ингредиенты, которые будут полезны, следующие:
- Для цикла
- Условное заявление
- Строка.indexOf()
- Строка.LastIndexOf()
Затем он провел быстрый пересмотр методов, которые я напишу здесь, чтобы помочь и себе.
Цикл For
for(initialize; test condition; update value){ //code block }
Условный оператор
if(expression){ //code block }
индекс()
var car = 'honda civic' car.indexOf('civic'); // 6 - where the word civic begins car.indexOf('i'); // 7 - it will only return the index of the first time the letter is found
lastIndexOf()
var car = 'honda civic' car.lastIndexOf('i');//9 - where the last 'i' is found
Ответ на вопрос: алгоритм определения того, содержит ли строка все уникальные символы (например, нет повторяющихся символов), следующий:
function unique (str){ for (var i = 0; i < str.length; i++) { if (str.indexOf(str[i]) !== str.lastIndexOf(str[i])) return false; } return true; }; unique('car')// returns true unique('carr')// returns false
Я не получил всего ответа сам, но хорошо начал, прежде чем увидел, как это сделать. Следующий вопрос я постараюсь решить самостоятельно. Но мне на сегодня хватит.