(pascal)для текста состоящего из слов , разделенных пробелами , выполнить : 1)поиск симметричных слов перевертышей. 2) поиск слов не имеющих повторяющихся букв. , надо

ROUSWOOD ROUSWOOD    2   18.08.2019 11:20    0

Ответы
Проgh Проgh  05.10.2020 02:44
Var 
s,s1,s2,st1,st2:string; i:integer; 
mn:set of char; b:boolean;
begin
writeln('Введите текст:');
readln(s);
s:=s+' ';
st1:=''; st2:='';
s1:=''; s2:=''; mn:=[]; b:=false;
while pos('  ',s)>0 do delete(s,pos('  ',s),1);
for i:=1 to length(s) do
 if s[i]<>' '
  then begin 
       s1:=s[i]+s1;
       s2:=s2+s[i];
       if s[i] in mn then b:=true;
       mn:=mn+[s[i]];
       end
  else begin
       if s1=s2 then st1:=st1+s1+' ';
       if not b then st2:=st2+s2+' ';
       s1:=''; s2:=''; mn:=[]; b:=false;
       end;
if st1<>''
 then writeln('Слова-перевёртыши: ',st1)
 else writeln('Слов-перевёртышей нет');
if st2<>''
 then writeln('Слова без повторяющихся букв: ',st2)
 else writeln('Слов без повторяющихся букв нет');
end.

Пример:
Введите текст:
заказ слово комок  пробел след пример огонь текст
Слова-перевёртыши: заказ комок 
Слова без повторяющихся букв: пробел след 
ПОКАЗАТЬ ОТВЕТЫ
Шнуров Шнуров  05.10.2020 02:44
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadlnString('>').ToWords;
  a.Where(w->w=w.Inverse).Println;
  a.Where(w->w.Distinct.Count=w.Length).Println;
end.

Пример
> Наша хата не кабак кто не в хате тот чудак
кабак в тот
не кто не в хате чудак
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика