Катя решает следующую задачу.
Дано: Робот в клетке А (см. рисунок).
Получить: Робот в клетке Б, закрашены все помеченные клетки.
Она составила основной алгоритм ;
ОСНОВНОЙ АЛГОРИТМ
использовать Робот
алг из А в Б с закрашиванием
дано | Робот в клетке А
надо | Робот в клетке Б, закрашены все помеченные клетки
нач
закрашивание блока
обход стены
закрашивание блока
обход стены
закрашивание блока
кон
Затем вс алгоритм закрашивание блока:
ВС АЛГОРИТМ "ЗАКРАШИВАНИЕ БЛОКА"
алг закрашивание блока
нач
нц 4 раз
закрасить вправо; закрасить; вправо; закрасить
влево; влево; вниз
кц
закрасить; вправо; закрасить; вправо; закрасить
кон
Ей осталось доделать вс алгоритм обход стены:
ВС АЛГОРИТМ "ОБХОД СТЕНЫ"
алг обход стены
нач
нц ? раз
влево
кц
нц ?? раз
вверх
кц
нц ??? раз
вправо
кц
вниз
вниз
вправо
кон
Подскажите Кате, какие числа нужно поставить вместо знаков во Менять саму структуру алгоритма нельзя.)
Напишите, какое число нужно поставить вместо "?".
Напишите, какое число нужно поставить вместо "??".
Напишите, какое число нужно поставить вместо "???".
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.
Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган шалаш
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<palinString.length(); wordEnd++)
if(wordEnd+1==palinString.length() || palinString.charAt(wordEnd+1)==' '){
String wordBeginning = "", wordEnding = "";
for(int wordBe = wordStart;wordBe<wordEnd+1;wordBe++)wordBeginning+=palinString.charAt(wordBe);
for(int wordEn = wordEnd;wordStart-1<wordEn;wordEn--)wordEnding+=palinString.charAt(wordEn);
if(wordBeginning.equals(wordEnding)){
for(int palinWord = wordStart;palinWord<=wordEnd;palinWord++)System.out.print(palinString.charAt(palinWord));
System.out.print("\n ");
} wordStart = wordEnd+2;
}
}
}