Форум программистов, компьютерный форум CyberForum.ru

Баланс скобок - C++

Восстановить пароль Регистрация
 
yeaahh
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 15
25.03.2013, 23:15     Баланс скобок #1
Помогите пожалуйста!!!
Собственно задание:
Текст в файле содержит многократно вложенные круглые скобки.
Если баланс скобок соблюден, исправить текст, оставив скобки
первого уровня круглыми, второго – заменить на квадратные,
третьего и последующих – на фигурные.

Добавлено через 1 час 19 минут
Помогите, очень нужно)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2013, 23:15     Баланс скобок
Посмотрите здесь:

C++ Баланс скобок
C++ Баланс скобок в файле
Баланс скобок C++
C++ Баланс скобок
C++ Проверить баланс скобок
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
26.03.2013, 00:37     Баланс скобок #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <string>
 
using namespace std;
 
char *s="ertert(a(aaa)a)";
 
int recurse(char* sl,char* sr,int num,int sqw)
{
     char* r=0;
     char* l=0;
     
     for(char* i= sl; i <= sr ; i++)
     {
             if(*i == ')'){return 0;}
             if(*i == '('){l=++i;break;}
     }
 
     for(char* i= sl + num -1 ;i >= sl; i--)
     {
             if(*i == '('){return 0;}
             if(*i == ')'){r=--i;break; }
     }
     if(!r && l || r && !l){return 0;}
     if(!r && !l){return 1;}
 
     if(sqw%2)
     {
               //çäåñü äåëГ*ГҐГёГј Г§Г*ìåГ*Гі r+1 ГЁ l-1 ñèìâîëîâ Г*Г* ] ГЁ [
     }
     
     return recurse(l,r,(int)r-(int)l+1,sqw+1);
}
int main()
{
          string str(s);
          cout<<recurse(s, s + str.size() - 1,str.size(),0)<<endl;
          cin.get();
}
Быстренько накатал. Считываешь текст в буфер и загоняешь в функцию. На выходе получаешь 1 или 0. Преобразовани ] [ делаешь там где написал.
Friday
ну и долго меня небыло...
 Аватар для Friday
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
26.03.2013, 02:29     Баланс скобок #3
Можно используя стэк еще сделать, хотя там долго играться со скобками придется
yeaahh
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 15
28.03.2013, 22:34  [ТС]     Баланс скобок #4
Цитата Сообщение от yeaahh Посмотреть сообщение
Помогите пожалуйста!!!
Собственно задание:
Текст в файле содержит многократно вложенные круглые скобки.
Если баланс скобок соблюден, исправить текст, оставив скобки
первого уровня круглыми, второго – заменить на квадратные,
третьего и последующих – на фигурные.

Добавлено через 1 час 19 минут
Помогите, очень нужно)
Напишите пожалуйста код полностью, т.к я ещё новичок..
Friday
ну и долго меня небыло...
 Аватар для Friday
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
28.03.2013, 22:47     Баланс скобок #5
yeaahh, так вам ведь написали уже
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
28.03.2013, 22:53     Баланс скобок #6
eocron, такие задачи коварны своей кажущейся простотой
C++
1
2
char s[]="ertert(()())";
char s[]="ertert(())()";
Yandex
Объявления
28.03.2013, 22:53     Баланс скобок
Ответ Создать тему
Опции темы

Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru