Вопрос задан 21.06.2023 в 17:51. Предмет Информатика. Спрашивает Шетилова Яна.

Дана строка, содержащая только английские буквы (большие и маленькие). Добавить открывающиеся и

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

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мамадалиев Шахзодбек.

#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
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на C++ с использованием рекурсии, вы можете написать следующий код. Этот код разбивает строку пополам и рекурсивно добавляет скобки к обоим половинам.

cpp
#include <iostream> #include <string> std::string addBrackets(const std::string& input, int start, int end) { if (start > end) { return ""; } if (start == end) { return std::string(1, input[start]); } int middle = (start + end) / 2; std::string leftHalf = addBrackets(input, start, middle); std::string rightHalf = addBrackets(input, middle + 1, end); // Добавляем открывающую скобку в середине std::string result = "(" + leftHalf + rightHalf + ")"; return result; } std::string addBrackets(const std::string& input) { return addBrackets(input, 0, input.size() - 1); } int main() { std::string input = "example"; std::string result = addBrackets(input); std::cout << result << std::endl; return 0; }

Этот код сначала вызывает функцию addBrackets с начальными индексами строки, а затем рекурсивно разделяет строку на две части и добавляет скобки вокруг них. Он работает как для строк с четным, так и для строк с нечетным числом символов.

Пример вывода:

css
(e(x(a(m)p)l)e)
0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос