Python. Простые алгоритмы
- Python. Простые алгоритмы
- Просмотров: 809
18. Строки. Заменить все вхождения подстроки в строке
s = 'aa_bb_cc_dd_ee' # исходная строка
s1 = '_' # что заменяем
s2 = '/' # на что заменяем
s_out=''
Способ №1. Использование метода replace()
s_out = s.replace(s1, s2)
print(s_out)
# aa/bb/cc/dd/ee
Временная сложность: O(n),
n - длина строки
Способ №2. Использование метода split()
m = s.split('_') # Разбиваем по разделителю в список подстрок
# print(m) ['aa', 'bb', 'cc', 'dd', 'ee']
for x in m:
s_out+=''.join(x)+s2
s_out=s_out[:-1]
print(s_out)
# aa/bb/cc/dd/ee
Временная сложность: O(n)
Способ №3. Использование цикла while
s_out = ""
i = 0
while i < len(s):
if s[i:i + len(s1)] == s1:
s_out += s2
i += len(s1)
else:
s_out += s[i]
i += 1
print(s_out)
# aa/bb/cc/dd/ee
Временная сложность: O (n*n1),
где n - длина входной строки,
n1 - длина подстроки, подлежащей замене.