mariyaskobenko1
22.02.2020 10:41

Смайлики
Напишите программу, которая посчитает количество смайликов в заданном тексте. Смайликом будем считать последовательность символов, удовлетворяющую условиям: первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз далее может идти символ – (минус) сколько угодно раз (в том числе символ минус может идти ноль раз) в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ]. внутри смайлика не может встречаться никаких других символов.
Например, нижеприведенные последовательности являются смайликами:
:)
;
В то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):
:-)]
;--
-)
::-(
:-()
В этой задаче требуется посчитать количество смайликов, содержащихся в данном тексте.
Входные данные
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 100 000 символов. Выходные данные
Выведите одно число — количество смайликов, которые встречаются в тексте. Примеры
Ввод
:);]
Вывод
2

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
vanya33251243
02.03.2021 09:11
// PascalABC.NET 3.3, сборка 1549 от 17.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadSeqIntegerWhile(x->x<=100).ToArray;
  Writeln('Количество четных чисел равно ',a.Where(x->x.IsEven).Count);
  a.Transform(x->x.IsOdd?x*x:x); a.Println
end.

Пример
35 24 38 83 110
Количество четных чисел равно 2
1225 24 38 6889

begin
  Writeln('S=',ReadSeqIntegerWhile(x->x>=0).Select(x->x mod 10).Sum)
end.

Пример
16 24 19 21 45 0 23 -21
S=28

begin
  var n:=ReadInteger('n=');
  var St:=new Stack <integer>;
  while n>0 do begin
    St.Push(n mod 10);
    n:=n div 10
    end;
  var a:=St.ToArray;
  a.Println(',');
  Writeln('Сумма цифр: ',a.Sum);
  Writeln('Сумма нечетных цифр: ',a.Where(x->x.IsOdd).Sum);
  Writeln('Сумма старшего и младшего разрядов: ',a.First+a.Last);
end.

Пример
n= 53214212
5,3,2,1,4,2,1,2
Сумма цифр: 20
Сумма нечетных цифр: 10
Сумма старшего и младшего разрядов: 7
0,0(0 оценок)
Ответ:
alusik2005
02.03.2021 09:11
//4)
var
  x1, y1, x2, y2, x3, y3, x4, y4: integer;
  s, sc: real;

function linelength(x1, y1, x2, y2: integer): real;
begin
  linelength := sqrt(sqr(x2 - x1) + sqr(y2 - y1));
end;

procedure ger(a, b, c: real);
var
  p: real;
begin
  p := (a + b + c) / 2;
  sc := sqrt(p * (p - a) * (p - b) * (p - c));
end;

begin
  write('1:');readln(x1, y1);
  write('2:');readln(x2, y2);
  write('3:');readln(x3, y3);
  write('4:');readln(x4, y4);
  ger(linelength(x1, y1, x2, y2), linelength(x2, y2, x3, y3), linelength(x1, y1, x3, y3));
  s := s + sc;
  ger(linelength(x1, y1, x4, y4), linelength(x4, y4, x3, y3), linelength(x1, y1, x3, y3));
  s := s + sc;
  writeln(s);
end.
//3)
var
  a, b, c: integer;

function sce(var a: integer): integer;
var
  sc, c: integer;
begin
  while a <> 0 do
  begin
    c := a mod 10;
    a := a div 10;
    sc := sc + c;
  end;
  sce := sc;
end;

begin
  read(a, b, c);
  if (sce(a) > sce(b)) and (sce(a) > sce(c)) then writeln(a) else
  if (sce(b) > sce(a)) and (sce(b) > sce(c)) then writeln(b) else
  if (sce(c) > sce(a)) and (sce(c) > sce(b)) then writeln(c) else
  if (sce(c) = sce(a)) and (sce(a) = sce(b)) then writeln('Равны');
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота