Top.Mail.Ru

Перечень алгоритмов

Python. Простые алгоритмы

Рассматриваются алгоритмы линейной обработки списков, строк - это последовательный поиск и  нахождение заданного значения, когда нужно просмотреть все элементы с первого до последнего. Как только будет найден элемент, равный заданному значению, необходимо вывести найденное значение и завершить поиск. Такой  алгоритм является простейшим алгоритмом поиска. Сложность поиска O(n).

В программировании «О» большое описывает наихудший сценарий. Допустим, у нас есть массив чисел, где мы должны найти какое-то определенное число при помощи цикла for. Оно может быть найдено при любой итерации, и чем раньше, тем быстрее функция завершит работу. О-нотация всегда указывает на верхнюю границу, т. е., описывает случай, когда алгоритму придется осуществить максимальное количество итераций, чтобы найти искомое число. Как, например, в том случае, если это число окажется последним в перебираемом массиве

Строка состоит из символов латинского алфавита A, B, C. Найдите длину самой длинной подцепочки, состоящей из символов C

Исходная строка

s ='CCCBACCBCCCCCACCABCACCACCCCAAABAABBBCCCCBCCCCBBBCBCBACCACCABCACCBBBBCACBCCCCCAC'

Способ № 1 Использование цикла for

cur = mx = ''   #текущая и макс длина
for x in s:
    
if x=='C':
         cur +=
"C"
        
mx = max(cur, mx, key=len)
    
else:
         cur=
''
print(mx,len(mx))

# CCCCC 5
Временная сложность: O (n)

 

Способ № 2 Использование метода replace()

s = s.replace('A',' ').replace('B', ' ')
mx = max(s.split(' '), key=len)
print(mx,len(mx))

# CCCCC 5
Временная сложность: O (n)