00:00:00 - Старт! 00:01:27 - Презентация курса! 00:05:12 - Задача 1: последовательность из пар разных элементов. 00:28:23 - Задача 2: последовательность подряд идущих символов DSMREAIK. 00:30:30 - Задача 3: последовательность не содержащая повторяющихся троек символов. 00:43:30 - Задача 4: последовательность с чередованием символов гл-согл-гл-... 00:54:40 - Задача 5: цифры от 1 до 9, знаки плюс-минус, знак равно. Вычислить выражение. 01:01:49 - Задача 7: максимальная неубывающая последовательность по таблице ASCII. 01:08:15 - Задача 8: максимальное кол-во палиндромов из семи символов. 01:15:14 - Задача 9: заменить символы в строке, чтобы из символов получился палиндром. 01:23:28 - Задача 10: расстояние между одинаковыми символами, не менее 150 символов Z. 01:31:12 - Задача 11: кол-во пар соседних, стоящих как в алфавите. 01:37:03 - Задача 12: правильная скобочная последовательность.
Решение 12 задания за один цикл: f = open('12.txt') s = f.readline() n = len(s) ans = 0 p = 0 k = 0 for i in range(n): if s[i] == '(': p += 1 k += 1 elif s[i] == ')': p -= 1 k += 1 if p == 0: ans = max(ans, k) elif p < 0: k = 0 print(ans)
я щас решаю 24 где есть файл с буквами и цифрами, и мне нужно найти максимальное число удовлетворяющее маске которое ограничено двумя парами символов ZZ по бокам 🥴
Другие способы решения некоторых заданий Решение 1 задачи в одну строчку print(max(2 * len(x) for x in open('1.txt').readline().replace('DDD', 'DD DD').replace('VVV', 'VV VV').replace('MMM', 'MM MM').replace('DD', '1').replace('VV', '2').replace('MM', '3').replace('V', ' ').replace('D', ' ').replace('M', ' ').replace('11', '1 1').replace('22', '2 2').replace('33', '3 3').split())) И в читаемом виде: s = open('1.txt').readline() s = s.replace('DDD', 'DD DD').replace('VVV', 'VV VV').replace('MMM', 'MM MM') s = s.replace('DD', '1').replace('VV', '2').replace('MM', '3').replace('V', ' ').replace('D', ' ').replace('M', ' ') s = s.replace('11', '1 1').replace('22', '2 2').replace('33', '3 3') print(max(2 * len(x) for x in s.split())) 2. s = open('2.txt').readline() for x in 'QWTYUOPFGHJLZXCVBN': s = s.replace(x, ' ') print(max(len(x) for x in s.split())) 3. s = open('3.txt').readline() k = m = 5 for i in range(len(s) - 5): if s[i] + s[i+1] + s[i+2] != s[i+3] + s[i+4] + s[i+5]: k += 1 m = max(m, k) else: k = 5 print(m) 4. s = open('4.txt').readline() for x in 'BCDFGHJKLMNPQRSTVWXZ': s = s.replace(x, '2') for x in 'AEIOUY': s = s.replace(x, '1') k = m = 1 for i in range(len(s) - 1): if s[i] + s[i+1] == '12' or s[i] + s[i+1] == '21': k += 1 m = max(m, k) else: k = 1 print(m) 5. s = open('5.txt').readline() summ = int(s[0]) for i in range(1, len(s)-1, 2): if s[i] == '+': summ += int(s[i+1]) else: summ -= int(s[i+1]) print(summ) 6. s = open('6.txt').readline() summ = int(s[0]) for i in range(1, len(s), 2): summ += int(s[i]) for i in range(2, len(s), 2): summ -= int(s[i]) print(summ) 7. (Почти такое же как у АР, но для полноты вставил) s = open('7.txt').readline() k = m = 1 for i in range(len(s) - 1): if s[i] >= s[i + 1]: k += 1 m = max(m, k) else: k = 1 print(m)
00:00:00 - Старт!
00:01:27 - Презентация курса!
00:05:12 - Задача 1: последовательность из пар разных элементов.
00:28:23 - Задача 2: последовательность подряд идущих символов DSMREAIK.
00:30:30 - Задача 3: последовательность не содержащая повторяющихся троек символов.
00:43:30 - Задача 4: последовательность с чередованием символов гл-согл-гл-...
00:54:40 - Задача 5: цифры от 1 до 9, знаки плюс-минус, знак равно. Вычислить выражение.
01:01:49 - Задача 7: максимальная неубывающая последовательность по таблице ASCII.
01:08:15 - Задача 8: максимальное кол-во палиндромов из семи символов.
01:15:14 - Задача 9: заменить символы в строке, чтобы из символов получился палиндром.
01:23:28 - Задача 10: расстояние между одинаковыми символами, не менее 150 символов Z.
01:31:12 - Задача 11: кол-во пар соседних, стоящих как в алфавите.
01:37:03 - Задача 12: правильная скобочная последовательность.
Решение 12 задания за один цикл:
f = open('12.txt')
s = f.readline()
n = len(s)
ans = 0
p = 0
k = 0
for i in range(n):
if s[i] == '(':
p += 1
k += 1
elif s[i] == ')':
p -= 1
k += 1
if p == 0:
ans = max(ans, k)
elif p < 0:
k = 0
print(ans)
я щас решаю 24 где есть файл с буквами и цифрами, и мне нужно найти максимальное число удовлетворяющее маске которое ограничено двумя парами символов ZZ по бокам 🥴
Другие способы решения некоторых заданий
Решение 1 задачи в одну строчку
print(max(2 * len(x) for x in open('1.txt').readline().replace('DDD', 'DD DD').replace('VVV', 'VV VV').replace('MMM', 'MM MM').replace('DD', '1').replace('VV', '2').replace('MM', '3').replace('V', ' ').replace('D', ' ').replace('M', ' ').replace('11', '1 1').replace('22', '2 2').replace('33', '3 3').split()))
И в читаемом виде:
s = open('1.txt').readline()
s = s.replace('DDD', 'DD DD').replace('VVV', 'VV VV').replace('MMM', 'MM MM')
s = s.replace('DD', '1').replace('VV', '2').replace('MM', '3').replace('V', ' ').replace('D', ' ').replace('M', ' ')
s = s.replace('11', '1 1').replace('22', '2 2').replace('33', '3 3')
print(max(2 * len(x) for x in s.split()))
2.
s = open('2.txt').readline()
for x in 'QWTYUOPFGHJLZXCVBN':
s = s.replace(x, ' ')
print(max(len(x) for x in s.split()))
3.
s = open('3.txt').readline()
k = m = 5
for i in range(len(s) - 5):
if s[i] + s[i+1] + s[i+2] != s[i+3] + s[i+4] + s[i+5]:
k += 1
m = max(m, k)
else:
k = 5
print(m)
4.
s = open('4.txt').readline()
for x in 'BCDFGHJKLMNPQRSTVWXZ':
s = s.replace(x, '2')
for x in 'AEIOUY':
s = s.replace(x, '1')
k = m = 1
for i in range(len(s) - 1):
if s[i] + s[i+1] == '12' or s[i] + s[i+1] == '21':
k += 1
m = max(m, k)
else:
k = 1
print(m)
5.
s = open('5.txt').readline()
summ = int(s[0])
for i in range(1, len(s)-1, 2):
if s[i] == '+':
summ += int(s[i+1])
else:
summ -= int(s[i+1])
print(summ)
6.
s = open('6.txt').readline()
summ = int(s[0])
for i in range(1, len(s), 2):
summ += int(s[i])
for i in range(2, len(s), 2):
summ -= int(s[i])
print(summ)
7. (Почти такое же как у АР, но для полноты вставил)
s = open('7.txt').readline()
k = m = 1
for i in range(len(s) - 1):
if s[i] >= s[i + 1]:
k += 1
m = max(m, k)
else:
k = 1
print(m)
Ох, ну и жесть в одну строчку