Size: a a a

Python для анализа данных

2020 December 15

M

Mikhail in Python для анализа данных
а, вижу что в решении есть
источник

АВ

Александр Владимиров... in Python для анализа данных
да этого нельзя.
источник

M

Mikhail in Python для анализа данных
а, тоже нельзя? ок
источник

M

Mikhail in Python для анализа данных
источник

M

Mikhail in Python для анализа данных
def isin(a, b):
   la, lb = len(a), len(b)
   if la < lb:
       return False
   for i in range(la):
       if i - lb == 1:
           return False
       miss = False
       for j in range(lb):
           if a[i + j] != b[j]:
               miss = True
               break
       if not miss:
           return True
   return False


assert isin("abcd", "ab")
assert isin("abcd", "bc")
assert isin("abcd", "cd")
assert not isin("abcd", "ac")
источник

АВ

Александр Владимиров... in Python для анализа данных
Mikhail
def isin(a, b):
   la, lb = len(a), len(b)
   if la < lb:
       return False
   for i in range(la):
       if i - lb == 1:
           return False
       miss = False
       for j in range(lb):
           if a[i + j] != b[j]:
               miss = True
               break
       if not miss:
           return True
   return False


assert isin("abcd", "ab")
assert isin("abcd", "bc")
assert isin("abcd", "cd")
assert not isin("abcd", "ac")
благодарю, комп выключил завтра попробую.я ещё хотел вложенным циклом но вот во второй range что ставит вопрос, мне же нужно разово ходить сверять значения.
источник

M

Mikhail in Python для анализа данных
Александр Владимирович
благодарю, комп выключил завтра попробую.я ещё хотел вложенным циклом но вот во второй range что ставит вопрос, мне же нужно разово ходить сверять значения.
ну проход по первой строке только один тут
источник

M

Mikhail in Python для анализа данных
последний return False не нужен кстати
источник

АВ

Александр Владимиров... in Python для анализа данных
да надо посмотреть ещё один вариант типо a[i]==b[i].
источник

AZ

Arsenii Zed in Python для анализа данных
Александр Владимирович
это решение работает, но использовать список и слайсы тоже нельзя
источник

j

john in Python для анализа данных
На основе решения @roveo , но без вложенного цикла:
источник

j

john in Python для анализа данных
def isin(a, b):
   la, lb = len(a), len(b)
   if la < lb:
       return False
   shift = 0
   for i in range(la):
     if a[i] == b[shift]:
       shift += 1
       if shift == lb:
         return True
     else:
       shift = 0
   return False
источник

M

Mikhail in Python для анализа данных
john
def isin(a, b):
   la, lb = len(a), len(b)
   if la < lb:
       return False
   shift = 0
   for i in range(la):
     if a[i] == b[shift]:
       shift += 1
       if shift == lb:
         return True
     else:
       shift = 0
   return False
👍
источник

M

Mikhail in Python для анализа данных
кажется что количество итераций не будет меньше, но красивее
источник

j

john in Python для анализа данных
Mikhail
кажется что количество итераций не будет меньше, но красивее
Думаю, должно быть меньше, т.к. для варианта со вложенным циклом сложность O(la*lb), а без вложенного - O(la), если я ничего не перепутал
источник

M

Mikhail in Python для анализа данных
john
Думаю, должно быть меньше, т.к. для варианта со вложенным циклом сложность O(la*lb), а без вложенного - O(la), если я ничего не перепутал
нет, потому что при несовпадении первой буквы внутренний цикл сразу же выходит
источник

M

Mikhail in Python для анализа данных
не, ваше решение лучше, нет оверхеда на инициализацию итераторов и всякого такого
источник

j

john in Python для анализа данных
Mikhail
нет, потому что при несовпадении первой буквы внутренний цикл сразу же выходит
Sorry, недоглядел :) Невнимательность. Видимо правильно Вы мне тестовое не прислали, когда подавал Вам резюме на джуна :)
источник

M

Mikhail in Python для анализа данных
john
Sorry, недоглядел :) Невнимательность. Видимо правильно Вы мне тестовое не прислали, когда подавал Вам резюме на джуна :)
с другого аккаунта? не вижу ни в истории, ни у себя в записях резюме на этот аккаунт :)
источник

j

john in Python для анализа данных
Mikhail
с другого аккаунта? не вижу ни в истории, ни у себя в записях резюме на этот аккаунт :)
Да, с @egor_rud
источник