Дана строка. Найти и напечатать все слова в этой строке , которые являются...

0 голосов
76 просмотров

Дана строка. Найти и напечатать все слова в этой строке , которые являются палиндромами.Програмирование


Информатика (50 баллов) | 76 просмотров
0

а язык программирования какой?

0

В PascalABC  var s,k: string;begin  write('строка:  ');  readln(s);  foreach k in s.Split(' ') do  if k = k.Reverse.JoinIntoString('') then   writeln('палиндром  ',k);end.

Дано ответов: 2
0 голосов
Правильный ответ

// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
  var s:=ReadLnString('Вводите:');
  s.ToWords.Where(x->x=ReverseString(x)).PrintLn;
end.

Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган и с в шалаш

Вариант, если исключить однобуквенные:

// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
  var s:=ReadLnString('Вводите:');
  s.ToWords.Where(x->x=ReverseString(x)).
    Where(x->x.Length>1).PrintLn;
end.

Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган шалаш

(142k баллов)
0 голосов

На Java:

class SearchPalin{
 public static void main(String args[]){
  String palinString = new java.util.Scanner(System.in).nextLine();
  System.out.print("\nПалиндром(-ы):\n  ");
  for(int wordStart = 0, wordEnd = 0; wordEnd   if(wordEnd+1==palinString.length() || palinString.charAt(wordEnd+1)==' '){
 String wordBeginning = "", wordEnding = "";
 for(int wordBe = wordStart;wordBe for(int wordEn = wordEnd;wordStart-1 if(wordBeginning.equals(wordEnding)){
  for(int palinWord = wordStart;palinWord<=wordEnd;palinWord++)System.out.print(palinString.charAt(palinWord));<br>  System.out.print("\n  ");
 } wordStart = wordEnd+2;
   }
 }
}

(851 баллов)