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

Задача: Убрать лишние скобки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
arreke
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 13
22.09.2012, 11:34     Задача: Убрать лишние скобки #1
Описание

Преобразовать математическое выражение, удалив в нём лишние скобки, которые не влияют на результат выражения.


Input

Первая строка - произвольная цифра, обозначающая сколько строк с выражениями будут введены (число строк не больше 10).
Затем вводятся строки с выражениями, в строке могут быть лишние скобки, длина строки не превышает 255 символов. Выражения содержат лишь операции сложения и вычетания. ("+" и "-")


Output

Вывести изменённые строки без лишних скобок.

Например, Input:
3↵
(a-b+c)-(a+(b-c))-(c-(d-e))↵
((a)-((b)))↵
a-(b+c)↵

Output:
a-b+c-(a+b-c)-(c-(d-e))↵
a-b↵
a-(b+c)↵


Мой код:

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char* edit (char str[256]) {
  char newStr[256];
 
// Edit expression
  
  return newStr;
}
 
int main() {
 
  int n, i;
  char str[256];
  
  scanf("%d", &n);
  for (i=0; i<n; i++) {
    scanf("%s", str);
    printf("%s\n", edit(str));
  }
 
 
  printf("\n");
  system("PAUSE");
  return 0;  
}
Подскажите, пожалуйста, какой должен быть алгоритм? Задача поначалу показалась лёгкой, но посидев, подумав, понял что не всё так просто.
Надо ли использовать Обратную Польскую Запись, или можно и попроще?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2012, 11:34     Задача: Убрать лишние скобки
Посмотрите здесь:

Скобки C++
Задача про скобки C++
C++ Убрать лишние пробелы
Дана строка, содержащая латинские буквы и скобки. Если скобки расставлены правильно - вывести 0. Иначе - номер позиции, где есть ошибочная скобка C++
Проверка на скобки C++
Квадратные скобки [] C++
Проверка на скобки C++
Для каждой открывающей скобки найти позицию ей соответствующей закрывающей скобки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.09.2012, 13:32     Задача: Убрать лишние скобки #2
Цитата Сообщение от arreke Посмотреть сообщение
в строке могут быть лишние скобки
Это значит, что на вход может быть подана такая строка "a+)b"?

Алгоритм - если перед открывающей скобкой не стоит минус, или в скобках стоит только одна переменная, значит эту пару скобок можно убрать.
Yandex
Объявления
22.09.2012, 13:32     Задача: Убрать лишние скобки
Ответ Создать тему
Опции темы

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