Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 May 13

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
не массив а словарь только
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
так это тоже n квадрат, к тому же менять итерируемый объект - очень плохая идея
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
так это тоже n квадрат, к тому же менять итерируемый объект - очень плохая идея
я прошелся один раз по первому слову и один раз по второму слову
источник

AA

AА AА in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
я так тоже делал, почему плохая - там итерация каждая с начала идет
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Igor Antonov
я прошелся один раз по первому слову и один раз по второму слову
а. я подумал типа функцией replace. если так, то это линейное время
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
 def scramble(s1, s2):
       sdict = {}
       for i in s2:
           sdict[i] = sdict.get(i, 0) + 1
       for i in s1:
           if len(sdict) > 0:
               if i in sdict:
                   sdict[i] -= 1
                   if sdict[i] == 0:
                       del sdict[i]
           else:
               return True
       return len(sdict) == 0
источник

AA

AА AА in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
чето нифига не оптимизируется ( Видимо там хак какой-то, типа побитового сдвига для умножения на 2
источник

AA

AА AА in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
с сортированными массивами попробовал тоже
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Igor Antonov
 def scramble(s1, s2):
       sdict = {}
       for i in s2:
           sdict[i] = sdict.get(i, 0) + 1
       for i in s1:
           if len(sdict) > 0:
               if i in sdict:
                   sdict[i] -= 1
                   if sdict[i] == 0:
                       del sdict[i]
           else:
               return True
       return len(sdict) == 0
это всё равно O от n квадрат
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
потому что оператор in тоже имеет линейное время. значит у нас цикл в цикле
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
потому что оператор in тоже имеет линейное время. значит у нас цикл в цикле
нет, в словаре доступ по ключу моментальный
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
или я не совсем понял
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
оператор in проверяет по значению, а не по ключу
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
так что не моментальный
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
словарь в питоне это хеш таблица, он не ищет по словарю, а вычисляет хеш и сразу же находит элемент
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ты сейчас говоришь про строчку  if i in sdict: ?
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
AА AА
чето нифига не оптимизируется ( Видимо там хак какой-то, типа побитового сдвига для умножения на 2
ну у меня еще мысль может сет взять какойто хитрый
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
а как мы узнаем достаточно ли вхождений того или иного символа?
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
вот про это я и думаю сейчас, плюс я не знаю скорость создание сета, может за счет того что это встроенная питоновская функция то оно быстрее пойдет и тогда что-то с этим можно делать
источник