Similar presentations:
Обработка символьных строк. Метод двух указателей. Задание №24
1.
ЗАДАНИЕ №24ОБРАБОТКА СИМВОЛЬНЫХ СТРОК.
МЕТОД ДВУХ УКАЗАТЕЛЕЙ
2.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определитемаксимальное количество идущих подряд символов, среди которых каждая из букв C и D
встречается не более двух раз.
s = 'hecqcwddrcdece'
kc = 0
#кол-во символов'c'
kd = 0
#кол-во символов'd'
m_s = 0
#максимальная длина искомой подстроки
L=0
#левая граница(указатель) текущей подстроки
R=0
#правая граница(указатель) текущей подстроки
for R in range(len(s)):
if s[R]=='c':
kc+=1
if s[R]=='d':
kd+=1
while kc>2 or kd>2:
if s[L]=='c':
kc-=1
if s[L]=='d':
kd-=1
L+=1
m_s=max(m_s,R-L+1)
print(m_s)
3.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 0
kc = 0
kd = 0
Len(s) = 14
L = 0 – левый(край) указатель
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 0 – правый указатель
Длина фрагмента (R – L + 1)
4.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 1
kc = 0
kd = 0
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=0
Длина фрагмента (R – L + 1) = 0 – 0 + 1 = 1
5.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 2
kc = 0
kd = 0
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=1
Длина фрагмента (R – L + 1)= 2
6.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 3
kc = 1
kd = 0
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=2
Длина фрагмента (R – L + 1)= 3
7.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 4
kc = 1
kd = 0
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=3
Длина фрагмента (R – L + 1)= 4
8.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 4
kc = 2
kd = 0
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=4
Длина фрагмента (R – L + 1)= 5
9.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 6
kc = 2
kd = 0
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=5
Длина фрагмента (R – L + 1)= 6
10.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 7
kc = 2
kd = 1
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=6
Длина фрагмента (R – L + 1)= 7
11.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 8
kc = 2
kd = 2
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=7
Длина фрагмента (R – L + 1)= 8
12.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 2
kd = 2
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=8
Длина фрагмента (R – L + 1)= 9
13.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 3
kd = 2
Len(s) = 14
L=0
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=9
Длина фрагмента (R – L + 1)= 9
14.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 3
kd = 2
Len(s) = 14
L=1
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=9
Длина фрагмента (R – L + 1)= 9
15.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 3
kd = 2
Len(s) = 14
L=2
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=9
Длина фрагмента (R – L + 1)= 8
16.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 2
kd = 2
Len(s) = 14
L=3
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R=9
Длина фрагмента (R – L + 1)= 7
17.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 2
kd = 3
Len(s) = 14
L=3
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 10
Длина фрагмента (R – L + 1)= 7
18.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 1
kd = 3
Len(s) = 14
L=4
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 10
Длина фрагмента (R – L + 1)= 7
19.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 1
kd = 3
Len(s) = 14
L=5
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 10
Длина фрагмента (R – L + 1)= 6
20.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 1
kd = 2
Len(s) = 14
L=6
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 10
Длина фрагмента (R – L + 1)= 5
21.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 1
kd = 2
Len(s) = 14
L=7
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 10
Длина фрагмента (R – L + 1)= 4
22.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 1
kd = 2
Len(s) = 14
L=7
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 11
Длина фрагмента (R – L + 1)= 5
23.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 2
kd = 2
Len(s) = 14
L=7
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 12
Длина фрагмента (R – L + 1)= 5
24.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 2
kd = 2
Len(s) = 14
L=7
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 13
Длина фрагмента (R – L + 1)=7
25.
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).Определите максимальное количество идущих подряд символов, среди которых
каждая из букв C и D встречается не более двух раз.
m_s = 9
kc = 2
kd = 2
Len(s) = 14
L=7
s
0
1
2
3
4
5
6
7
8
9
10
11
12
13
h
e
c
q
c
w
d
d
r
c
d
e
c
e
R = 13
Длина фрагмента (R – L + 1)=7