Уменьшить время программы, все тесты проходит, проблема только во времени (на языке паскаль) var s: string ; var k,i: integer; begin readln(s); k: =0; for i: =1 to length(s) do if s[i]='a' then begin s[i]: ='b'; k: =k+1; end; for i: =1 to length(s) do if s[i]='a' then begin s[i]: ='b'; k: =k+1; end; writeln(s); writeln(k); end.

sheealice sheealice    3   01.10.2019 11:40    1

Ответы
nnfilinaaaa nnfilinaaaa  09.10.2020 07:48
Код (Pascal)

var

 s: string;

 k, i: integer;


begin

 readln(s);

 k := 0;

 for i := 1 to length(s) do

   if s[i] = 'a' then

   begin

     s[i] := 'b';

     k := k + 1;

   end

   else if s[i] = 'A' then

   begin

     s[i] := 'B';

     k := k + 1;

   end;

 writeln(s);

 writeln(k);

end.

Файл с решением прикреплён.

ПОКАЗАТЬ ОТВЕТЫ
45454521 45454521  09.10.2020 07:48

На Паскале если используются переменные типа string, то обработка строки занимает ну ооооочень много времени.  Вместо string лучше использовать массив char.  На скринах приведен пример программ с использованием char.  Символы считывались из файла , размер 20000.  Время работы программ (разницу) оцените сами.


Уменьшить время программы, все тесты проходит, проблема только во времени (на языке паскаль) var s:
Уменьшить время программы, все тесты проходит, проблема только во времени (на языке паскаль) var s:
Уменьшить время программы, все тесты проходит, проблема только во времени (на языке паскаль) var s:
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика