В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
Inozemceva1981
Inozemceva1981
17.07.2022 02:15 •  Информатика

Дана строка, содержащая только английские буквы (большие и маленькие). Добавить открывающиеся и закрывающиеся скобки по следующему образцу: "example" -> "(e(x(a(m)p)l)e)" (До середины добавлены открывающиеся скобки, после середины – закрывающиеся. В случае, когда длина строки четна в скобках, расположенных в середине, должно быть 2 символа. ("card -> (c(ar)d", но не "(c(a()r)d)"). на с и рекурсией желательно

Ответ:
A1mSh1k
A1mSh1k
03.08.2021 09:45

#include <iostream>

using namespace std;

int main()

{

   string str;

   cin >> str;

   if (str.length()%2 == 1)

   {

       for (int i; i < str.length(); i++)

       {

           if (i < (float)str.length()/2) {cout << "(" << str[i];};

           if (i > (float)str.length()/2) {cout << str[i] << ")";};

           if ((float)i+0.5 == (float)str.length()/2) {cout << ")";};

       }

   }

   else

   {

       for (int i; i < str.length(); i++)

       {

           if (i < (float)str.length()/2) {cout << "(" << str[i];};

           if (i >= (float)str.length()/2) {cout << str[i] << ")";};

       }

   }

}

0,0(0 оценок)
Ответ:
эля1413
эля1413
14.01.2024 18:45
Хорошо, давайте решим эту задачу пошагово.

1. Сначала нам нужно определить, где находится середина строки. Мы можем использовать индексацию для этого. Если длина строки четная, середина находится между двумя средними символами. Если длина строки нечетная, середина находится на "среднем" символе. Давайте запишем это в коде:
```python
def add_brackets(s):
n = len(s)
if n % 2 == 0:
midpoint = n // 2
else:
midpoint = n // 2 + 1
```

2. Теперь, когда у нас есть середина строки, мы можем начать добавлять скобки. Для этого мы создадим новую строку и будем добавлять символы из исходной строки с добавлением скобок. Давайте создадим пустую новую строку и начнем добавлять символы:
```python
def add_brackets(s):
n = len(s)
if n % 2 == 0:
midpoint = n // 2
else:
midpoint = n // 2 + 1

new_string = ""
for i in range(n):
new_string += s[i]
```

3. Теперь мы можем начать добавлять скобки перед и после середины строки. Для этого мы проверим, находимся ли мы в середине строки (сравнивая текущий индекс с точкой середины) и добавим соответствующую скобку. Давайте добавим проверку и добавление скобок:
```python
def add_brackets(s):
n = len(s)
if n % 2 == 0:
midpoint = n // 2
else:
midpoint = n // 2 + 1

new_string = ""
for i in range(n):
if i == midpoint:
new_string += ")"
if i == midpoint-1:
new_string += "("
new_string += s[i]
```

4. Однако, добавление скобок в этой реализации будет неправильным для строк с нечетными длинами. Мы можем исправить это, переместив добавление скобок после символа. Давайте это поправим:
```python
def add_brackets(s):
n = len(s)
if n % 2 == 0:
midpoint = n // 2
else:
midpoint = n // 2 + 1

new_string = ""
for i in range(n):
new_string += s[i]
if i == midpoint-1:
new_string += "("
if i == midpoint:
new_string += ")"
```

5. И наконец, нам нужно вернуть новую строку:
```python
def add_brackets(s):
n = len(s)
if n % 2 == 0:
midpoint = n // 2
else:
midpoint = n // 2 + 1

new_string = ""
for i in range(n):
new_string += s[i]
if i == midpoint-1:
new_string += "("
if i == midpoint:
new_string += ")"

return new_string
```

Теперь мы можем протестировать нашу функцию с примерами, чтобы убедиться, что она работает правильно:
```python
print(add_brackets("example")) # Output: (e(x(a(m)p)l)e)
print(add_brackets("card")) # Output: (c(ar)d
```

Я надеюсь, что ответ достаточно простой и понятный для вас!
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?