Задания
Версия для печати и копирования в MS Word

Тек­сто­вый файл со­дер­жит толь­ко за­глав­ные буквы ла­тин­ско­го ал­фа­ви­та (ABCZ). Опре­де­ли­те сим­вол, ко­то­рый чаще всего встре­ча­ет­ся в файле сразу после буквы A.

На­при­мер, в тек­сте ABCAABADDD после буквы A два раза стоит B, по од­но­му разу  — A и D. Для этого тек­ста от­ве­том будет B.

Для вы­пол­не­ния этого за­да­ния сле­ду­ет на­пи­сать про­грам­му. Ниже при­ведён файл, ко­то­рый не­об­хо­ди­мо об­ра­бо­тать с по­мо­щью дан­но­го ал­го­рит­ма.

За­да­ние 24

Спрятать решение

Ре­ше­ние.

Для ре­ше­ния этой за­да­чи счи­та­ем стро­ку из файла. Ини­ци­а­ли­зи­ру­ем стро­ко­вую пе­ре­мен­ную s1 со зна­че­ни­ем ABCDEFGHIJKLMNOPQRSTUVWXYZ. По­сим­воль­но пе­ре­би­рая стро­ку из файла, каж­дый раз встре­чая букву A, будем встав­лять в стро­ку s1 сим­вол, иду­щий после буквы A в счи­тан­ной стро­ке, таким об­ра­зом, чтобы в стро­ке s1 со­от­вет­ству­ю­щие сим­во­лы сто­я­ли рядом друг с дру­гом (на­при­мер, если из файла была счи­та­на стро­ка ABAB, стро­ка s1 после вы­пол­не­ния ал­го­рит­ма будет вы­гля­деть так: ABBBCDEFGHIJKLMNOPQRSTUVWXYZ. После этого по­счи­та­ем длину самой длин­ной це­поч­ки сим­во­лов и таким об­ра­зом по­лу­чим ответ.

 

При­ведём ре­ше­ние дан­ной за­да­чи на языке Pascal.

var

len, max, count: longint;

s, s1: string;

maxC: char;

f: text;

begin

assign(f,'C:\24.txt');

reset(f);

readln(f, s);

len := length(s);

s1 := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

for i:integer := 1 to len do begin

if ((s[i] = 'A') and (i <> len)) then

s1 := s1.Substring(0, s1.LastIndexOf(s[i+1])) + s[i+1] + s1.Substring(s1.LastIndexOf(s[i+1]));

end;

len := length(s1);

max := 1;

count := 0;

for i:integer := 1 to len-1 do begin

if (s1[i] = s1[i+1]) then count := count + 1

else count := 0;

if count > max then begin

max := count;

maxC := s1[i];

end;

end;

writeln(maxC);

end.

 

При­ведём дру­гое ре­ше­ние дан­ной за­да­чи на языке Pascal.

var

len, max: longint;

maxC: char;

s: string;

arr: array ['A'..'Z'] of integer;

f: text;

begin

assign(f,'C:\24.txt');

reset(f);

readln(f, s);

len := length(s);

for i:integer := 1 to len - 1 do begin

if (s[i] = 'A') then arr[s[i+1]] := arr[s[i+1]] + 1;

end;

max := 0;

for j:char := 'A' to 'Z' do begin

if arr[j] > max then begin

max := arr[j];

maxC := j;

end;

end;

writeln(maxC);

end.

В ре­зуль­та­те ра­бо­ты дан­ных ал­го­рит­мов при вводе дан­ных из файла в усло­вии по­лу­ча­ем ответ  — G.

 

Ответ: G.

 

При­ме­ча­ние. Путь к файлу не­об­хо­ди­мо ука­зать со­глас­но рас­по­ло­же­нию файла на Вашем ком­пью­те­ре.

 

При­ведём дру­гое ре­ше­ние на языке Python.

f = open("24.txt")

s = f.readline()

a = [0] * 26

maxi = 0

for i in range(len(s) - 1):

if s[i] == 'A':

a[ord(s[i + 1]) - 65] += 1

for i in range(26):

if a[i] > maxi:

maxi = a[i]

index = i

print(chr(index + 65))

 

При­ведём ре­ше­ние Па­ни­на Ев­ге­ния на языке Python.

from collections import Counter

f=open('24.txt').readline()

t=''

for i in range(len(f)-1):

if f[i]=='A':

t+=f[i+1]

print(Counter(t).most_common()[0][0])

 

При­ведём ре­ше­ние Лы­са­ко­ва Юрия на языке Python.

f=open('24.txt').readline()

j=''

for i in range(len(f)-1):

if f[i] == 'A':

j += f[i+1]

print(max(set(j),key = j.count))

 

При­ведём ре­ше­ние Ивана Клоч­ко­ва на языке Python.

a = open("24.txt").readline().strip()

d = "QWERTYUIOPASDFGHJKLZXCVBNM"

s = {}

s = s.fromkeys(d, 0)

for i in range(len(a)):

if a[i] == "A":

s[a[i+1]] = s[a[i+1]]+1

qa = []

for e in s.keys():

r = s.get(e)

qa.append(r)

for e in s.keys():

if max(qa) == s.get(e):

print(e)

 

При­ведём ре­ше­ние Ми­ха­и­ла Глин­ско­го на языке Python.

s = open('24.txt').readline()

maxb=0

mm=''

for i in sorted('QWERTYUIOPASDFGHJKLZXCVBNM'):

if s.count('A'+i)>maxb:

mm=i

maxb=s.count('A'+i)

print(mm)

 

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

s = open('24.txt').readline()

a = [s[i] for i in range(1,len(s)) if s[i-1]=='A']

m = max([a.count(c) for c in set(a)])

print(*[c for c in set(a) if a.count(c)==m])


Аналоги к заданию № 33196: 33494 Все

Раздел кодификатора ФИПИ: