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

0 голосов

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


спросил от (50 баллов) в категории Информатика
оставил комментарий от Отличник (8.6k баллов)

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

оставил комментарий от Отличник (9.7k баллов)

В 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 голосов
ответил от Архангел (142k баллов)
 
Лучший ответ

// 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.

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

0 голосов
ответил от Начинающий (851 баллов)

На 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;
   }
 }
}

...