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

Задача : "Скобочки". - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ исправьте ошибки пожалуйста http://www.cyberforum.ru/cpp-beginners/thread392428.html
#include "stdafx.h" #include <math.h> float rec(float n) { if (n==1)return 0; else return log(n/(sqrt(n))+rec(n-1)); } int _tmain(int argc, _TCHAR* argv) { printf ("vvedite seloe n \n");
C++ Полноэкранное консольное приложение Здравствуйте! Вопрос состоим в следующем: как запустить консольное приложение в полноэкранном режиме? Есть ли какая-то функция для этих целей? Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread392424.html
Определить двух студентов с наивысшим средним баллом. C++
С текстового файла считать последовательность записей, содержащих данные о результатах сессии студентов группы в следующем формате: <Фамилия>, <Имя>,, <Список экзаменационных оценок>. Распечатать введенные данные в виде таблицы, Видсортуваваты данные по фамилиям студентов в алфавитном порядке. определить двух студентов с высоким средним баллом. Проблема в том что я еще не очень понимаю и...
одномерный массив C++
Удалить из массива М(26) первый положительный элемент. Пожалуйста!!! Вводить и выводить через printf и scanf. Использовать только библиотеки stdio. h, time.h, stdlib
C++ не могу понять с чего начать http://www.cyberforum.ru/cpp-beginners/thread392395.html
Написать программу содержащую 2 функции. Первая функция которая выводит на экран строку, состоящую из одинаковых символов располагается после функции main . вторая функция которая запрашивает длину строки и символ , располагается до функции main помогите написать прогу...
C++ Не правильно работает не подскажите что не так? #include <iostream> #include <conio.h> using namespace std; void Char(int n,int c ) { switch(n) { case 1: cout<<"\t\t\n\t*\t\n\t\t";break; case 2: cout<<"\t\t*\n\t\t\n*\t\t";break; подробнее

Показать сообщение отдельно
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
26.11.2011, 18:55
попробуйте решать эту задачу, используя стек.
В нем будете хранить только открывающиеся скобки. При нахождении закрывающейся скобке в строке, выбрасываете элемент из стека, если он есть. В конце концов, если строка верная последовательность, стек будет пуст!

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
#include <iostream>
#include <string>
#include <stack>
 
int main()
{
    std::string s;
    std::cin >> s;
    std::stack < char > st;
    bool f = true;
    int index = 0;
 
    while ( index < s.length() && f )
    {
        if ( s [ index ] == ')' )
        {
            f = ( !st.empty() );
            if ( f )
                st.pop();
        }
        else
            st.push ( s [ index ] );
        index++;
    }
    std::cout << ( ( f && st.empty() ) ? "YES" : "NO" ) << std::endl;
}
На тестовых примерах проходит... Тестируйте!

P.S. Контестер это решение принял =)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru