Помогите уменьшить время программки, все тесты проходит, неувязка только во времени

Помогите уменьшить время программки, все испытания проходит, неувязка только во медли (на языке паскаль)

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.

Задать свой вопрос
2 ответа

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

Михон Капелька
В этой тестирующей системе Free Pascal что - то глючит. Оформите программку как консольное прибавление Delphi, добавив несколько строк в начало файла и изберите транслятор Delphi 6 Borland, все испытания проходит без заморочек. Расширение файла с программкой сделайте dpr. program Project1;APPTYPE CONSOLEuses SysUtils;var s: string; i,k: longint; f: text;begin assign(f,'input.txt'); reset(f); k:=0; readln(f,s); close(f); Дальше по тексту.

Код (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.

-----------------------------------------

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

Софья Севхаева
Необходимо еще.... наибольшее ремя программки 2.09 , а эта программа занимает 2.106 Я теснее сколько голову разбиваю , как это сделать.... ничего в голову не приходит.....
Jelina Pugo
Можно узнать, где я могу проверить задачу?
Виталя Понятовсаий
https://informatics.msk.ru/mod/statements/view3.php?id=11250chapterid=1123371
Максимка Шабасанов
Совсем необязательно было давать ссылку, но хорошо
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт