Задание 24. Обработка символьных строк

Печать

Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

ВАРИАНТ 1

Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ....9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет символов 0, стоящих рядом.

Для выполнения этого задания следует написать программу.

Решение и ответ
f = open('24_var_1-4.txt')
s = f.readline()
f.close()
m=k=1 #минимальное количество символов
for i in range(1, len(s)):
    if  s[i-1] + s[i] !='00': 
        k += 1
    else:
        m = max(k,m) #запоминаем максимальную длину подпоследовательности
        k = 1
print(m)
Ответ977

ВАРИАНТ 2

Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ....9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет трех символов 0, стоящих рядом.

Для выполнения этого задания следует написать программу.

Решение и ответ
f = open('24_var_1-4.txt')
s = f.readline()
f.close()
m=k=2 #минимальное количество символов

for i in range(2, len(s)):
    if  s[i-2] + s[i-1] + s[i]!='000':
        k += 1
    else:
        m = max(k,m) #запоминаем максимальную длину подпоследовательности
        k = 2 #как только встречаем третий 0, подпоследовательность считаем снова с предыдущего элемента, то есть к  = 2

print(m)

Ответ: 7684

ВАРИАНТ 3

Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ....9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет символов 1 и 2, стоящих рядом.

Для выполнения этого задания следует написать программу.

Решение и ответ
f = open('24_var_1-4.txt')
p = f.readline()
f.close()
m=k=1 #минимальное количество символов в подпоследовательности

for i in range(1,len(p)):
    if not (p[i-1] + p[i] == '12' or p[i-1] + p[i] == '21'): 
        k+=1   
    else:
        m = max (k,m) #запоминаем максимальную длину подпоследовательности
        k = 1

print(m)

Ответ: 532

ВАРИАНТ 4

Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ....9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет символов 1 и 2, а также 1 и 3, стоящих рядом.

Для выполнения этого задания следует написать программу.

Решение и ответ
f = open('24_var_1-4.txt')
p= f.readline()
f.close()
m=k=1 #минимальное количество элементов в подпоследовательности

for i in range(1,len(p)):
     if not (p[i-1] + p[i] == '12' or p[i-1] + p[i] == '21' or p[i-1] + p[i] == '13' or p[i-1] + p[i] == '31'): 
          k+=1
     else:
        m = max(k,m)
        k = 1

print(m)

Ответ: 339

ВАРИАНТ 5

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, расположенных  в алфавитном порядке (возможно с повторением символов).

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_5-9.txt')
p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i]>= p[i-1]: 
        k+=1
    else:
        m=max(k,m) 
        k=1

print(m)

Ответ: 15

ВАРИАНТ 6

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, расположенных  в обратном алфавитном порядке (возможно с повторением символов).

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_5-9.txt')
p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i]<= p[i-1]: 
        k+=1
    else:
        m=max(k,m) 
        k=1

print(m)

Ответ: 19

ВАРИАНТ 7

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых нет символа Z.

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_5-9.txt')
p=f.readline()
f.close()
m=k=0 #если Z первая, то длина подпоследовательности равна 0

for i in p:
    if i!='Z': 
        k+=1
    else:
        m=max(k,m)
        k=0

print(m)

Ответ: 34

ВАРИАНТ 8

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых нет символа Z.

Для выполнения этого задания следует написать программу.

 
Решение и ответ
f=open('24_var_5-9.txt')

p=f.readline()
f.close()
m=n=0
a='' #подстрока а
for i in p:
    a+=i
    if i == 'Z':
        n+=1
    if n==2:
        m=max(m,len(a)-1) # максимальное количество символов из текущего значения и длины а
        a = a[a.find('Z')+1:] # удаляем слева все символы, включая первую Z
        n=1 # осталось символов Z в строке

print(m)

Ответ: 43

ВАРИАНТ 9

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых символ Z встречается не более двух раз.

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_5-9.txt')
p=f.readline()
f.close()
m=n=0
a='' #подстрока а
for i in p:
    a+=i
    if i == 'Z':
        n+=1
    if n==3:
        m=max(m,len(a)-1) # максимальное количество символов из текущего значения и длины а
        a = a[a.find('Z')+1:] #  удаляем слева все символы, включая первую Z
        n=2 # осталось символов Z в строке

print(m)

Ответ: 50

ВАРИАНТ 10

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, ..., 9). Определите максимальное количество идущих подряд одинаковых цифр.

Для выполнения этого задания следует написать программу.

 
Решение и ответ
f=open('24_var_10-18.txt')

p=f.readline()
f.close()
m=k=1
for i in range(1,len(p)):
    if p[i-1]== p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 47

ВАРИАНТ 11

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, ..., 9). Определите максимальное количество идущих подряд цифр, среди  которых каждые две соседние различны .

Для выполнения этого задания следует написать программу.

 
Решение и ответ
f=open('24_var_10-18.txt')

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1]!= p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 120

ВАРИАНТ 12

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, ..., 9). Определите максимальное количество идущих подряд цифр, расположенных в строго возрастающем порядке.

Для выполнения этого задания следует написать программу.

 
Решение и ответ
f=open('24_var_10-18.txt')

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1] < p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 8

ВАРИАНТ 13

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, ..., 9). Определите максимальное количество идущих подряд цифр, расположенных в строго убывающем порядке.

Для выполнения этого задания следует написать программу.

 
Решение и ответ
f=open('24_var_10-18.txt')

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1] > p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 7

ВАРИАНТ 14

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, ..., 9). Определите максимальное количество идущих подряд цифр, расположенных в невозрастающем порядке.

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_10-18.txt')

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1] >= p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 47

ВАРИАНТ 15

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, ..., 9). Определите максимальное количество идущих подряд цифр, расположенных в неубывающем порядке.

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_10-18.txt')

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1] <= p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 49

ВАРИАНТ 16

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, ..., 9). Определите максимальное количество идущих подряд нечетных цифр.

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_10-18.txt')

p=f.readline()
f.close()
m=k=1
N=['1','3','5','7','9']

for i in s:
    if  i in N:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 17

ВАРИАНТ 17

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, ..., 9). Определите максимальное количество идущих подряд четных цифр.

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_10-18.txt')

p=f.readline()
f.close()
m=k=1
Ch=['0','2','4','6','8']

for i in s:
    if  i in Ch:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 50

ВАРИАНТ 18

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, ..., 9). Определите максимальное количество идущих подряд нечетных цифр, расположенных в неубывающем порядке.

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_10-18.txt')

s=f.readline()
f.close()
m=k=1
N=['1','3','5','7','9']

for i in range(1,len(s)):
    if  s[i-1] in N and s[i] in N and s[i-1]<=s[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 8

ВАРИАНТ 19

Текстовый файл состоит не более чем из 10символов I, V и X. Сколько раз в файле встречается последовательность цифр, формирующая римскую цифру XV?

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_19-20.txt')
s = f.read()
f.close()
k=0

for i in range(1, len(s)):
    if  s[i-1] + s[i] =='XV':
        k += 1 
print(k)

# или так
s=s.replace('XV','z')
print(s.count('z'))

# или так
s=s.replace('XV','z')
k=0
for i in s:
    if  i=='z':
        k+=1
print(k)

Ответ: 111177

ВАРИАНТ 20

Текстовый файл состоит не более чем из 10символов I, V и X. Сколько раз в файле встречается последовательность цифр, формирующая римскую цифру XVI?

Для выполнения этого задания следует написать программу.

Решение и ответ
f=open('24_var_19-20.txt')
s = f.read()
f.close()
k=0 #см вариант 19, публикую самое короткое решение
s=s.replace('XVI','z')
print(s.count('z'))

Ответ: 36713