Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Дана строка, слова разделены одним пробелом, в конце точка. Если последняя буква последнего слова и первая буква слова минимальной длины одинаковы, то поменять их местами. В противном случае удалить слово минимальной длины.
- Нужно чтобы было так
- Дана строка, слова разделены одним пробелом, в конце точка. Если последняя буква первого слова и первая буква слова максимальной длины одинаковы, то поменять их местами. В противном случае удалить слово максимальной длины.
- т.е. в этой задаче ищет минимум а мне нужен максимум
- var s,s1,sp,sm:string;
- i,j,im,ip,mn:byte;
- begin
- writeln('Введите строку из слов, разделенных одним пробелом в конце точка');
- readln(s);
- //составляем последнее слово
- sp:='';
- i:=length(s)-1;
- while (i>=1)and(s[i]<>' ') do
- begin
- sp:=s[i]+sp;
- i:=i-1;
- end;
- ip:=i+1; //его начало
- //ищем слово минимальной длины
- mn:=255;
- i:=1;
- while i<length(s) do
- if (s[i]<>' ')and((i=1)or(s[i-1]=' ')) then
- begin
- s1:='';
- j:=i;
- while(j<length(s))and(s[j]<>' ')do
- begin
- s1:=s1+s[j];
- j:=j+1;
- end;
- if length(s1)<mn then
- begin
- mn:=length(s1);
- im:=i; //его начало
- sm:=s1; //само слово
- end;
- i:=i+length(s1);
- end
- else i:=i+1;
- if sm[1]=sp[1] then //если первые буквы одинаковые
- begin
- delete(s,ip,length(sp)); //удаляем последнее
- insert(sm,s,ip); //на его место вставляем минимальное
- delete(s,im,length(sm)); //удаляем минимальное
- insert(sp,s,im); //вставляем последнее
- end
- else delete(s,im,length(sm)); //иначе удаляем минимальное
- write(s)
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement