Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86

Задача «Форматирование кода» не проходит все тесты

07.08.2017, 23:42. Показов 2517. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача не проходит все тесты. Пример, указанный в условии работает, а потом тестировщик пробует еще несколько различных вариантов входных данных. Какой вариант не сработал, он не показывает. Помогите пожалуйста разобраться, какие условия в моем коде не соблюдены.

Условие задачи:
Кликните здесь для просмотра всего текста
Форматирование кода

ограничение по времени на тест2 секунды
ограничение по памяти на тест256 мегабайт
вводstdin
выводstdout

Вам требуется отформатировать текст программы на C-подобном языке, расставив отступы строк нужного размера.

Считайте, что если строка заканчивается на «{», то глубина вложенности увеличивается (и отступ последующих строк увеличивается на 4 пробела). Если строка начинается с «}» и отступ не пустой, то глубина вложности уменьшается (отступ этой строки и далее уменьшается на 4 пробела).

В строках заданной программы надо игнорировать первоначальное форматирование, то есть лидирующие пробелы и концевые пробелы перед форматированием следует удалить. Если строка пустая или состоит только из пробелов, то выведите пустую строку, никаких пробелов добавлять в начало не нужно.

Не гарантируется, что заданная программа является корректной для какого-то языка или что в ней сбалансированы какие-либо скобки и т.п.

Входные данные

Входные данные состоят из последовательности строк, представляющий текст программы. Гарантируется, что все строки состоят из символов с кодами ASCII от 32 до 127. Не гарантируется, что заданная программа является корректной для какого-то языка или что в ней сбалансированы какие-либо скобки и т.п. Размер входных данных не превосходит 100 Кб.

Выходные данные

Выведите отформатированный текст программы.


Примеры из условия задачи(они отработали):
Кликните здесь для просмотра всего текста


Код программы, реализованной мной на 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp106
{
    class Program
    {
        static void Main(string[] args)
        {
            string current = "";
            int s = 0;
            int x = 0;
            List<string> lines = new List<string>();
            while ((((current = Console.ReadLine()).TrimStart(' ')) != "}") || (s != 1))
            {
                current = current.TrimStart(' ');
                current = current.TrimEnd(' ');
                if ((current.Contains("{") == true) && (current.Contains("}") == false))
                {
                    s = s + 1;
                }
                else if ((current.Contains("{") == false) && (current.Contains("}") == true))
                {
                    s = s - 1;
                }
                lines.Add(current);
            }
            current = current.TrimStart(' ');
            current = current.TrimEnd(' ');
            lines.Add(current);
            s = 0;
            for (int i = 0; i < lines.Count; i++)
            {
                if ((lines[i].EndsWith("{")) && (lines[i].StartsWith("}")))
                {
                    s = s - 1;
                    x = s;
                    while (x > 0)
                    {
                        Console.Write("    ");
                        x--;
                    }
                    Console.WriteLine(lines[i]);
                    s = s + 1;
                    x = s;
                }
                else if ((lines[i].EndsWith("{")) && (lines[i].Contains("}") == false))
                {
                    x = s;
                    while (x > 0)
                    {
                        Console.Write("    ");
                        x--;
                    }
                    Console.WriteLine(lines[i]);
                    s = s + 1;
                    x = s;
                }
                else if ((lines[i].Contains("{") == false) && (lines[i].StartsWith("}")))
                {
                    s = s - 1;
                    x = s;
                    while (x > 0)
                    {
                        Console.Write("    ");
                        x--;
                    }
                    Console.WriteLine(lines[i]);
                }
                else
                {
                    x = s;
                    while (x > 0)
                    {
                        Console.Write("    ");
                        x--;
                    }
                    Console.WriteLine(lines[i]);
                }
            }
            Console.ReadLine();
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2017, 23:42
Ответы с готовыми решениями:

Задача «Форматирование кода» не проходит все тесты, уже на третьем заваливается
Задача «Форматирование кода» не проходит все тесты, уже на третьем заваливается. Примеры, указанные в условии работают, а потом тестировщик...

Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается
Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается. Примеры, указанные в условии работают, а потом...

Задача «Телефонная книга» не проходит все тесты
Задача не проходит все тесты. Пример, указанный в условии работает, а потом тестировщик пробует еще несколько различных вариантов входных...

9
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
25.09.2017, 21:00  [ТС]
Помогите с этой задачей, голову сломал уже
0
Эксперт .NET
 Аватар для Usaga
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,993
26.09.2017, 03:40
CBBBBB, по-моему вполне очевидно, что первый пример отработал некорректно.
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
26.09.2017, 10:23  [ТС]
Usaga, оба примера отработали
0
Эксперт .NET
 Аватар для Usaga
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,993
26.09.2017, 10:29
CBBBBB, да, за то другие - нет. Реализуйте нормальное форматирование, чтобы код в первом примере к нормальному виду приводился. Может быть остальные тесты тоже пройдут.

А так, без вменяемой информации о том, что не нравится тестам, работать придётся вслепую.

Добавлено через 1 минуту
А так получается, что ваш код одно форматирует, а другое портит. Посмотрите на строку с "NullPointerException", до вашего кода она смотрелась лучше.
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
26.09.2017, 18:52  [ТС]
Usaga, сгенерируй пример, исходя из условия задачи, который не работает, у меня все проходит. Кто-нибудь может предложить вариант, который не пройдет, отчего плясать?
0
Эксперт .NET
 Аватар для Usaga
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,993
26.09.2017, 18:58
CBBBBB, я ничего генерировать не хочу. Нет желания гадать, что тестам не нравится. У вас есть вариант от которого можно отталкиваться - хреново отформатированный первый пример. Сделайте нормально и скормите тестам.
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
26.09.2017, 19:00  [ТС]
Usaga, все у меня отлично работает
0
Эксперт .NET
 Аватар для Usaga
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,993
26.09.2017, 19:09
CBBBBB, значит всё хорошо и проблем нет.
1
0 / 0 / 0
Регистрация: 22.03.2019
Сообщений: 1
22.03.2019, 18:16
Привет, так ты разобрался в итоге со своей задачей?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.03.2019, 18:16
Помогаю со студенческими работами здесь

Задача «Телефонная книга» не проходит все тесты
Задача не проходит все тесты. Пример, указанный в условии работает, а потом тестировщик пробует еще несколько различных вариантов входных...

Задача форматирования таблицы не проходит все тесты
Задача не проходит все тесты. Пример, указанный в условии работает, а потом тестировщик пробует еще несколько различных вариантов входных...

Задача преобразования XML не проходит все тесты
Задача не проходит все тесты. Примеры, указанные в условии отрабатывают, а потом тестировщик пробует еще несколько различных вариантов...

Задача по преобразованию XML не проходит все тесты, дает ошибку “Неправильный ответ на тест 8”
Задача по преобразованию XML не проходит все тесты, дает ошибку &quot;Неправильный ответ на тест 8&quot;, что-то видимо не учел. ...

Числа Смита (Не проходит все тесты)
Число Смита — такое составное число, сумма цифр которого равняется сумме цифр всех его простых сомножителей. Так, примером числа Смита...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru