String34. Даны строки $$S$$ и $$S_0$$. Удалить из строки $$S$$ последнюю подстроку, совпадающую с $$S_0$$. Если совпадающих подстрок нет, то вывести строку $$S$$ без изменений.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
program String34; var S,S0,S2,S02:string; poz:integer; function miror(S:String):String; //функция сделать строку зеркальной. var i: integer; S2:String; begin S2:=''; for i:=1 to Length(S) do S2:=S2+S[Length(S)-i+1]; miror:=S2; end; begin Write('S:'); Readln(S); Write('S0:'); Readln(S0); S2:=miror(S);//делаем зеркальную строку S02:=miror(S0); //делаем зеркальным исходное значение poz:=pos(S02,S2); //Ищем в развёрнутой строке перовое вхождение развёрнутого значения if poz<>0 then delete(S2,poz,length(S02)); //Удаляем найденное S:=miror(S2); // делаем строку ещё раз зеркальной и тем самым возвращаем прежний вид Writeln(S); end. |
Другие задачи из раздела String можно посмотреть здесь.
Комментарии:
Комментарии 1