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

С++ для начинающих

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

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

22.09.2012, 11:34. Просмотров 1256. Ответов 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++ Убрать лишние строчки флагами
Программа проверки файла (ов) на лишние скобки C++
Фигурные скобки: Мне пишут что ошибка в закрытие скобки после return. 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     Задача: Убрать лишние скобки
Ответ Создать тему
Опции темы

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