Тёмный

Решаем задачу calculator на leetcode | JavaScript | Computer Science 

Елена Литвинова — Искусство Веб-разработки 🛸
Просмотров 2,4 тыс.
50% 1

В видео пройдёмся и решим за O(N) задачу с одного собеседования, Calculator.
🍀 Поддержать развитие канала: www.donationalerts.com/r/webe...
✍️ Мой телеграм канал: t.me/webelart
🏰 Английский RU-vid: @webelart_en
💁🏼‍♀️ Мой инстаграм: / webelart
🦄 LinkedIn: / webelart
Ссылки используемые в уроке:
📹 Оценка сложности алгоритмов: • Оценка сложности алгор...
📹 Учимся использовать стек и очередь в JavaScript: • Учимся использовать ст...
🔗 LeetCode задача - leetcode.com/problems/basic-c...
00:00 Введение.
01:02 Разбираем условие задачи.
06:20 Изучаем алгоритм.
10:50 Пишем код.
18:58 Тестирование.
На канале я рассматриваю различные темы веб-разработки, на текущий момент: веб-основы, веб-анимации, веб-дизайн.

Опубликовано:

 

27 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 40   
@reina_5425
@reina_5425 2 месяца назад
Елена, спасибо за разбор задачи 🤩 побольше бы таких видео, вы очень хорошо объясняете 👍
@marpusik1277
@marpusik1277 5 месяцев назад
Гитара у стены - моё почтение😇
@ourdestruction6851
@ourdestruction6851 4 месяца назад
какой же у вас приятный голос и манера речи, слушать одно удовольствие
@Phoenix_coding
@Phoenix_coding 5 месяцев назад
мне нравится твоя подача 👍🥰
@user-ji6vi7hp2z
@user-ji6vi7hp2z 5 месяцев назад
Очень интересно!
@delosait
@delosait 4 месяца назад
А мне пришла открыткаааа🎉🎉😂 Ура, ура, ура, Спасибо, Лена🎉🎉🎉
@webelart
@webelart 4 месяца назад
О, крутяк! ☺
@avp6537
@avp6537 4 месяца назад
Елена, спасибо за полезное видео! Ещё сегодня пришла ваша открытка🎉 Было неожиданно открыть и увидеть там Салазара Слизерина😮😂 Спасибо!!!
@webelart
@webelart 4 месяца назад
Рада, что видео понравилось. Про открытку, крутота! Карточки Гарри Поттера я положила наверно в 2-3 открытки. :)
@vladimirbelonogov5993
@vladimirbelonogov5993 5 месяцев назад
Можно ли как-то получить доступ к вашему курсу по алгоритмам, хотел купить? Очень нравится ваша подача
@webelart
@webelart 5 месяцев назад
Здравствуйте, Владимир. Пока нет набора на алгоритмы. Если будет, я отпишусь под комментарием. ❤
@sayces
@sayces 4 месяца назад
:like:
@webelart
@webelart 4 месяца назад
@qulinxao
@qulinxao 5 месяцев назад
замечание по терминам - цифра это глиф для десятичного это от 0 до 9 - число(целое во входе ещю и натуральное ) это от 1 и более цифр
@webelart
@webelart 5 месяцев назад
Это вы цифре замечание сделали? Вот она на вас теперь обидется и разговаривать не будет. И кляксы в тетрадках ставить будет. Даже и не позавидуешь вам теперь. 🦊
@qulinxao
@qulinxao 5 месяцев назад
@@webelart сам страдаю
@NeverGTI
@NeverGTI 5 месяцев назад
Это вы заюзали обратную польскую запись, так что ли получается? Если да, то странно как то идею сформулировали, ну или я не очень суть ухватил )
@webelart
@webelart 5 месяцев назад
Нет это не обратная польская нотация. Это обычный калькулятор. Польская нотация попроще. Кстати в видео про стек и очередь как раз её решала.
@NeverGTI
@NeverGTI 5 месяцев назад
@@webelart значит пересмотрю видео более внимательно. В любом случае, спасибо за видосики )
@qulinxao
@qulinxao 5 месяцев назад
class Solution: def calculate(self, s: str) -> int: s,m,b,z=s.replace(' ','')+'+',[],0,set('*/') for e in s: if e not in '*/-+':b=b*10+int(e);continue len(m) and m[-1] in z and (b:=m.pop()*b if m.pop()=='*' else m.pop()//b) m.append(b);m.append(e);b=0 return m[0]+sum((-1 if m[p-1]=='-' else 1)*m[p]for p in range(2,len(m),2))
@webelart
@webelart 5 месяцев назад
Чё-то сложно написано. Мне алгоритм в видео больше нравится.
@qulinxao
@qulinxao 5 месяцев назад
@@webelart у вас по факту стандартный парсер скобочного выражение с выкинутыми скобками - и следовательно стеком их вложенностей - исключить отдельную отработку последнего аргумента (который не завершён в отличии от остальных последующим оператором обычно можно обьемлющими скобками :) спасибо за радость глазу
@webelart
@webelart 5 месяцев назад
@@qulinxao Надо будет со скобками решить. Пока не знаю как.
@SerzhNesteruk
@SerzhNesteruk 5 месяцев назад
Спасибо за видео и интересную задачу! Не спешил подсматривать ваше решение, и попробовал решить самостоятельно. Не сразу получилось красиво декомпозировать задачу. Сперва была мысль парсить токены (числа, операторы) в многоуровневый массив (хорошо, что от этой идеи отказался), чтобы уже потом учесть приоритеты операторов. После же некоторых раздумий пришёл таки к практически идентичному решению. Вот, что вышло: const calculate = function(str) { const subtotal = []; let numeric = ''; let sign = '+'; for (const char of str + '=') { if (char === ' ') { continue; } if (!isNaN(char)) { numeric += char; continue; } if (sign === '+') { subtotal.push(+numeric); } if (sign === '-') { subtotal.push(-numeric); } if (sign === '*') { subtotal.push(subtotal.pop() * numeric); } if (sign === '/') { subtotal.push(subtotal.pop() / numeric | 0); } numeric = ''; sign = char; } return subtotal.reduce((a, b) => a + b, 0); }; Правда, для удобочитаемости я выбрал цикл for...of и отказался от switch...case. Но ваше решение будет всё же более производительным, та и нейминг переменных в нём мне таки понравился больше. 👍
@webelart
@webelart 5 месяцев назад
У меня такое же решение. ❤
@vatasi7312
@vatasi7312 5 месяцев назад
Еще кто то заметил чему равно 2+2*2 в превью ?😮😊
@webelart
@webelart 5 месяцев назад
А как вы думаете, что там?
@vatasi7312
@vatasi7312 5 месяцев назад
@@webelart 2 или 3 :D?
@webelart
@webelart 5 месяцев назад
@@vatasi7312 Мимо! 😄 Ещё предложения?
@vatasi7312
@vatasi7312 5 месяцев назад
2+2*2​@@webelart😂😂😂
@webelart
@webelart 5 месяцев назад
@@vatasi7312 Нет :)
@MultiEchelon
@MultiEchelon 5 месяцев назад
Я видимо никогда не буду так разбираться в таком коде...😢 слишком нужно шарить в математике
@webelart
@webelart 5 месяцев назад
Из математики здесь только + - * /. Остальное алгоритм. Подписывайтесь на канал и я вас научу! ❤
@virtuoz-ru
@virtuoz-ru 5 месяцев назад
Лена, у тебя канал называется "Елена Литвинова - Искусство Веб-разработки", а не какой-то там вебеларт
@webelart
@webelart 5 месяцев назад
Вебэларт это и есть искусство веб разработки, сокращено. Веб - это веб, el -это часть моего имени. Art - искусство.
Далее
Sinfdosh xotin 7😂
01:01
Просмотров 1 млн
Sinfdosh xotin 7😂
01:01
Просмотров 1 млн