Дана строка, состоящая из n цифр (т.е. однозначных чисел), между которыми стоит n-1 знак операции, каждый из которых может быть либо +, либо -. Вычислите значение данного выражения.
Решение оформите в виде функции int eval(const string & S)
,
получающей в качестве аргумента строку и возвращающую ее значение.
Ввод | Вывод |
---|---|
1+2-3 |
0 |
Дано выражение одно из следующих видов: “A+B”, “A-B” или “A*B”, где A и B - целые неотрицательные числа. Определите значение этого выражения.
Решение оформите в виде функции long long eval(const string & S)
.
Ввод | Вывод |
---|---|
2*2 |
4 |
100-101 |
-1 |
В шифре Цезаря каждый символ заменяется на другой символ, третий по счету в алфавите после данного, с цикличность. То есть символ A заменяется на D, символ B - на E, символ C - на F, ..., символ Z на C. Аналогично строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.
Дана строка, зашифруйте ее при помощи шифра Цезаря. Решение
оформите в виде функции void CaesarCipher(string & S, int k)
.
S
— исходная строка, k
— величина сдвига.
Первая строка входных данных содержит текстовую строку. Вторая строка входных данных содержит величину сдвига \(k\), \(0\le k\lt 26\).
Указание: сделайте функцию char CaesarCipherChar(char c, int k)
,
шифрующую один символ.
Ввод | Вывод |
---|---|
In a hole in the ground there lived a hobbit. |
Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw. |
Дана строка, возможно, содержащая пробелы. Определите количество слов в этой строке. Слово — это несколько подряд идущих букв латинского алфавита (как заглавных, так и строчных).
Решение оформите в виде функции int CountWords(const string & S)
,
возвращающее значение типа int
.
При решении этой задачи нельзя пользоваться дополнительными строками и списками.
Ввод | Вывод |
---|---|
Yesterday, all my troubles seemed so far away |
8 |
Дана строка. Измените регистр символов в этой строке так, чтобы первая буква каждого слова была заглавной, а остальные буквы - строчными.
Решение оформите в виде функции void Capitalize(string & S)
.
Ввод | Вывод |
---|---|
In a hole in the ground there lived a hobbit. |
In A Hole In The Ground There Lived A Hobbit. |
Дана строка, содержащая одно или более целых неотрицательных чисел, разделенных знаками “+” или “-”. Вычислите значение этого выражения.
Решение оформите в виде функции long long (const string & S)
.
Ввод | Вывод |
---|---|
21+7-10 |
18 |
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие буквы) в этой строке встречается чаще всего. При решении этой задачи заглавные и строчные буквы считаются одинаковыми, а прочие символы, не являющиеся буквами, не учитываются.
Программа должна вывести в первой строке все буквы, которые встречаются чаще всего в исходной строке. Выводить буквы необходимо в заглавном написании, в алфавитном порядке, без пробелов. Во второй строке выведите единственное число - сколько раз в данной строке встречаются эти буквы.
При решении этой задачи нельзя пользоваться вложенными циклами. Входная строка должна обрабатываться за один проход.
Ввод | Вывод |
---|---|
- We all live in the Yellow Submarine! |
EL |
Во многих англоговорящих странах время записывается в 12-часовом формате с указанием одного из двух 12-часовых интервалов: до полудня (a.m.) или после полудня (p.m.). Формально запись времени в 12-часовом формате выглядит, как строка “h:mm x.m.”, где h — число часов от 1 до 12 (однозначное или двухзначное), mm — число минут от 00 до 59, дополненное нулями до двух разрядов, x — одна из двух букв “a” или “p”. Подробней примеры записи времени и их перевод в 24-часовой формат можно найти в википедии.
Дана строка с записью некоторого времени в 12-часовом формате. Выведите его в 24-часовом формате “hh:mm” (hh — количество часов от 00 до 23, дополненное нулями до двух разрядов, mm — количество минут от 00 до 59, дополненное нулями до двух разрядов).
Ввод | Вывод |
---|---|
1:00 a.m. |
01:00 |
12:34 p.m. |
12:34 |
В сети интернет каждому компьютеру присваивается четырехбайтовый код, который принято записывать в виде четырех чисел, каждое из которых может принимать значения от 0 до 255, разделенных точками. Вот примеры правильных IP-адресов:
127.0.0.0 192.168.0.1 255.0.255.255
Программа получает на вход строку из произвольных символов. Если эта строка является корректной записью
IP-адреса, выведите YES
, иначе выведите NO
.
Ввод | Вывод |
---|---|
127.0.0.1 |
YES |
Дана текстовая строка, содержащая буквы латинского алфавита, пробелы, запятые и точки. Отформатируйте этот текст по следующим правилам:
Выведите полученную строку, добавив в конец символ “#”.
Ввод | Вывод |
---|---|
Hello , world . |
Hello, world.# |
Напечатайте календарь на месяц. Месяц может состоять из 28, 29, 30, 31 дня. Календарь на месяц состоит из 4, 5 или 6 столбцов, заполненных числами (датами). Ширина каждого столбца - два символа, между столбцами промежуток в один символ. Однозначные числа дополняются пробелом слева. Промежуток между столбцами - один пробел. В каждом столбце должно быть записано хотя бы одно число.
Программа получает на вход два числа - количество дней в месяце (от 28 до 31) и день недели, на которое приходится первое число месяца (от 1 до 7) и должна вывести календарь на указанный месяц.
Ввод | Вывод |
---|---|
31 3 |
6 13 20 27 |
Строка состоит из целых неотрицательных чисел, разделенных знаками операций “+”, “-” и “*”. Вычислите значение этого выражения выполняя действия по правилам арифметики.
Тесты к этой задаче закрытые.
Ввод | Вывод |
---|---|
10-2*3 |
4 |