Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
Liebe
...
 Аватар для Liebe
891 / 74 / 5
Регистрация: 21.02.2010
Сообщений: 2,196
Записей в блоге: 1
26.11.2011, 20:36     Задача : "Скобочки".
Цитата Сообщение от turtLe Посмотреть сообщение
На одном из тестов моя программа выдает неверный результат, сам найти ошибку в своем алгоритме я пока не смог, прошу помощи в этом деле
Ошибка в том, что алгоритмом не предусмотрен вариант строки, когда закрывающих скобок вообще нет. Например, "((((" - выдает "YES", а должен "NO".
Возможно, если исправить как ниже, то будет работать правильно. Но не факт. А лучше использовать выше предложенный алгоритм - он и по быстродействию лучше.
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
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
        string str;
        bool b;
        int  k;
        b=true;
        cin>>str;
    k = str.length();
        if ((str.length() % 2 != 0) || (str[0] == ')')) b = false;
        while ( ( k > 0 ) && b )
        {
                if ( str[0] == '(' )
                {
                        for (int j = 1; j < k ; j++)
                                str[j-1] = str[j];
                        k--;
                        for ( int j = 0; j < k ; j++)
                                if ( str[j] == ')' ) 
                                {
                                        for (int t = j ; t < k - 1 ; t++) 
                         str[t] = str[t+1];
 
                    k--;//перенесли сюда, т.к. передвигаем влево, только когда условие верно
                        b=true;//так как пока со строкой все нормально
                    break;
                                }
                else b=false; //на случай если ни одной закрывающей скобки не встретится
                        //k--;
                } else b = false;
        }
        if ( b == true ) cout<<"YES"; else cout<<"NO";
    
        return 0;
}
 
Текущее время: 00:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru