Гистограмма Гистограмма является многоугольником, сформированным из последовательности прямоугольников, выровненных на общей базовой линии. Прямоугольники имеют равную ширину, но могут иметь различные высоты. Например, фигура слева показывает гистограмму, которая состоит из прямоугольников с высотами 2,1,4,5,1,3,3 2 , 1 , 4 , 5 , 1 , 3 , 3 . Все прямоугольники на этом рисунке имеют ширину, равную 1 1 . Обычно гистограммы используются для представления дискретных распределений, например, частоты символов в текстах. Отметьте, что порядок прямоугольников очень важен. Вычислите область самого большого прямоугольника в гистограмме, который также находится на общей базовой линии. На рисунке справа заштрихованная фигура является самым большим выровненным прямоугольником на изображенной гистограмме. Входные данные В первой строке входных данных записано число n (0<≤106) ( 0 < n ≤ 10 6 ) — количество прямоугольников гистограммы. Далее на той же строке следуют n целых чисел ℎ1 h 1 , ..., ℎ h n , где 0≤ℎ≤109 0 ≤ h i ≤ 10 9 . Эти числа обозначают высоты прямоугольников гистограммы слева направо. Ширина каждого прямоугольника равна 1 1 . Выходные данные Выведите площадь самого большого прямоугольника в гистограмме. Помните, что этот прямоугольник должен быть на общей базовой линии. Примеры Ввод Вывод 7 2 1 4 5 1 3 3 8
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;
}
}
}
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.
Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган шалаш