Дан массив целых чисел и некоторое число. Найдите в данном массиве элемент, ближайший к заданному.
В первой строке заданы элементы массива (целые числа, не превосходящие по модулю 1000).
Во второй строке дано одно целое число \(x\), не превосходящее по модулю 1000.
Выведите значение элемента массива, ближайшее к \(x\). Если таких чисел несколько, выведите последнее из них.
Ввод | Вывод |
---|---|
5 |
4 |
5 |
4 |
3 |
2 |
Дан массив. Если в нем есть два соседних элемента одного знака, выведите эти числа. Если соседних элементов одного знака нет - не выводите ничего. Если таких пар соседей несколько - выведите первую пару.
Примечание. В этой задаче нужно реализовать алгоритм линейного поиска: найти
такую первую пару элементов, удовлетворяющую заданному условию. Алгоритм линейного
поиска пишется при помощи цикла while
, а не при помощи цикла for
.
Ввод | Вывод |
---|---|
5 |
2 3 |
Переставьте соседние элементы массива (A[0]
c A[1]
,
A[2]
c A[3]
и т.д.).
Если элементов нечетное число, то последний элемент остается на своем месте.
Ввод | Вывод |
---|---|
5 |
2 1 4 3 5 |
Циклически сдвиньте элементы массива вправо
(A[0]
переходит на место A[1]
,
A[1]
на место A[2]
, ...,
последний элемент переходит на место A[0]
).
Используйте минимально возможное количество операций присваивания.
Ввод | Вывод |
---|---|
5 |
5 1 2 3 4 |
Дана строка. Выведите её символы в обратном порядке, по одном символу в строке.
Ввод | Вывод |
---|---|
Python |
n |
Дана строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней слов.
Ввод | Вывод |
---|---|
Hello world |
2 |
Дана строка. Удалите из этой строки все символы @
.
Ввод | Вывод |
---|---|
Bilbo.Baggins@bagend.hobbiton.shire.me |
Bilbo.Bagginsbagend.hobbiton.shire.me |
Создавайте строку на миллион символов. Использовать вторую строку нельзя.
Дана строка. Разрежьте ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами.
Результат выведите *в звездочках*.
Ввод | Вывод |
---|---|
Hi |
*iH* |
Hello |
*loHel* |
Создавайте строку на миллион символов. Использовать вторую строку нельзя.
Дана строка, состоящая ровно из двух слов, разделенных пробелом. Переставьте эти слова местами.
Ввод | Вывод |
---|---|
Hello world |
*world Hello* |
Дана строка. Замените в этой строке все цифры 1
на слово
one
.
Ввод | Вывод |
---|---|
1+1=2 |
one+one=2 |
Программа должна
Дана строка. Удалите из нее все символы, чьи индексы делятся на 3.
Решение выведите так же, как в задаче «Две половинки».
В этой задаче вам придётся использовать цикл.
Ввод | Вывод |
---|---|
Python |
*yton* |
Программа должна выполнять действия по алгоритму предыдущей задачи
Секретное агентство решило для шифрования переписки своих сотрудников использовать «метод бутерброда». Сначала буквы слова нумеруются в таком порядке: первая буква получает номер 1, последняя буква - номер 2, вторая – номер 3, предпоследняя – номер 4, потом третья … и так для всех букв (см. рисунок). Затем все буквы записываются в шифр в порядке своих номеров. Например, слово «sandwich» зашифруется в «shacnidw».
К сожалению, программист агентства, написал только программу шифрования и уволился. И теперь агенты не могут понять, что же они написали друг другу. Помогите им.
Вводится слово, зашифрованное методом бутерброда. Выведите расшифрованное слово.
Решение выведите так же, как в задаче «Две половинки».
Решите эту задачу при помощи срезов, не используя циклы.
Ввод | Вывод |
---|---|
Aabrrbaacda |
*Abracadabra* |
Для защиты от ботов, собирающих с web-страниц адреса электронной почты для рассылки спама, используются методы скрытия адреса электронной почты. Рассмотрим самый простой метод скрытия: в адресе электронной почты символы «.» меняются на «(dot)», символ «@» меняется на «(at)».
Дана строка текста, в ней есть один адрес электронной почты (он содержит один символ «@»). В адресе электронной почты (считайте, что адрес — это слово, отделённое пробелами) выполните указанные замены, в остальных местах замены производить не нужно.
Решение выведите так же, как в задаче «Две половинки».
Ввод | Вывод |
---|---|
Bilbo.Baggins@bagend.hobbiton.shire.me - valid email. |
*Bilbo(dot)Baggins(at)bagend(dot)hobbiton(dot)shire(dot)me - valid email.* |
В этой задаче напишите функцию char* replace(char* s, char *pos, char *replacement)
, которая принимает строку, указатель на символ, который нужно заменить и строку на которую надо заменить. Функция должна возвращать новую строку.
Определите, какой символ нужно удалить из данной строки, чтобы она стала палиндромом.
Программа получает на вход одну строку и должна вывести единственное число: номер символа в строке, при удалении которой слово становится палиндромом, нумерация начинается с 1. Если при удалении любого символа строка не станет палиндромом, программа должна вывести число 0.
Длина входной строки может быть от 2 до 100.000 символов, решение должно иметь сложность \(O(n)\), где \(n\) — длина строки.
Ввод | Вывод |
---|---|
raceczar |
6 |
car |
0 |