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

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

03.10.2017, 14:00. Показов 2042. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача «Форматирование кода» не проходит все тесты, теперь на 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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp150
{
    class Program
    {
        static void Main(string[] args)
        {
            string current = "";
            int m = 0;
            int s = 0;
            List<string> lines = new List<string>();
            while (((current = Console.ReadLine()) != null) && (m != 2))
            {
                current = current.TrimStart(' ');
                current = current.TrimEnd(' ');
                lines.Add(current);
                if (current.Length == 0)
                {
                    m = m + 1;
                }
                else
                {
                    m = 0;
                }
            }
            m = 0;
            for (int i = 0; i < lines.Count; i++)
            {
                if ((lines[i].StartsWith("}")) && (lines[i].EndsWith("{")))
                {
                    s = s - 1;
                    m = s + 1;
                }
                else if (lines[i].EndsWith("{"))
                {
                    m = m + 1;
                }
                else if (lines[i].StartsWith("}"))
                {
                    s = s - 1;
                    m = s;
                }
                if (lines[i].Length != 0)
                {
                    while (s > 0)
                    {
                        lines[i] = "    " + lines[i];
                        s--;
                    }
                }
                s = m;
            }
            for (int i = 0; i < lines.Count; i++)
            {
                Console.WriteLine(lines[i]);
            }
            Console.ReadLine();
        }
    }
}
Примеры из условия задачи(они отработали):
Миниатюры
Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается   Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.10.2017, 14:00
Ответы с готовыми решениями:

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

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

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

21
Эксперт .NET
 Аватар для Usaga
14096 / 9313 / 1349
Регистрация: 21.01.2016
Сообщений: 34,989
03.10.2017, 14:22
CBBBBB, вы уже создавали тему с подобным вопросом. И там мы с вами, вроде бы, пришли к тому, что не зная, что тестируют эти тестеры, можно менять ваш код до бесконечности в попытке угадать что не так.

Я вам предложил поправить ваш код таким образом, чтобы он нормально форматировал первый пример (сейчас он не корректно форматируется на мой взгляд). Но вы решили, что всё пучком.

Больше я не знаю, что вам посоветовать.
0
Эксперт .NET
 Аватар для Usaga
14096 / 9313 / 1349
Регистрация: 21.01.2016
Сообщений: 34,989
03.10.2017, 14:25
Я об этом:
Миниатюры
Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается  
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 14:30  [ТС]
Usaga, оба примера отрабатывает программа, на 9-ом тесте валится
0
Эксперт .NET
 Аватар для Usaga
14096 / 9313 / 1349
Регистрация: 21.01.2016
Сообщений: 34,989
03.10.2017, 14:31
CBBBBB, а что проверяет девятый тест?
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 14:32  [ТС]
Usaga, не показывает какие входные данные пробует
0
Эксперт .NET
 Аватар для Usaga
14096 / 9313 / 1349
Регистрация: 21.01.2016
Сообщений: 34,989
03.10.2017, 14:33
Я к тому, что этот пример сразу в глаза бросается, ибо часть его неверно отформатирована. А поскольку вы не можете сказать, что именно проверяет девятый тест, то откуда такая уверенность, что не подобную же ситуацию (как на скриншоте)?

Но если вам нравится гадать, то пожалуйста.
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 14:38  [ТС]
Usaga, я не любитель гадать, также не любитель разводить демагогию. Доказательства того, что примеры отрабатывают:
Миниатюры
Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается   Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается  
0
Эксперт .NET
 Аватар для Usaga
14096 / 9313 / 1349
Регистрация: 21.01.2016
Сообщений: 34,989
03.10.2017, 14:43
CBBBBB, мне не нужны доказательства. Я верю, что два теста отрабатывают. Но я так же верю вам, что девятый тест не отрабатывает. И вы мне не можете сказать почему.

Единственная сейчас видимая невооружённым глазом зацепка в ситуации полной неопределённости: ваш код не корректно форматирует данные. То, что первый тест это пропустил значит лишь одно - он (тест) не проверяет конкретно тот случай, где ваша программа лажает. А вот девятый тест, видимо, именно эту часть и проверяет.

Поэтому я вижу одно решение: переделать программу, чтобы первый пример форматировался корректно. И уже после этого можно смело возбудать о том, что у вас всё в коде хорошо, тесты, такие-сякие, проверяют незнамо что.

Добавлено через 1 минуту
Незнаю как ещё более доходчиво можно объяснить.
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 14:50  [ТС]
Usaga, что в первом примере моей программой не так форматируется? Поподробнее расскажи, подоходчивее...

Добавлено через 3 минуты
Usaga, ты выделил просто три строчки, в которых нужно удалить начальные и конечные пробелы. Ооо, великий тестер

Добавлено через 1 минуту
Цитата Сообщение от CBBBBB Посмотреть сообщение
C#
1
2
current = current.TrimStart(' ');
current = current.TrimEnd(' ');
Usaga, вот эти строки в моей программе, тебе не о чем не говорят
0
Эксперт .NET
 Аватар для Usaga
14096 / 9313 / 1349
Регистрация: 21.01.2016
Сообщений: 34,989
03.10.2017, 16:31
CBBBBB, посмотрите внимательнее на скриншот, который я переввыложил и выделил фрагмент. До вашего кода он был плохо отформатирован, но после него стало хуже: отступ на второй строке пропал. Я понимаю, что в задании подобное не оговаривалось, но ваш код этот фрагмент кода просто испортил.

Я предполагаю, что именно это поведение и стало причиной провала теста. Я предполагаю, что либо задание не оговаривает полных требований, либо тесты проверяют больше, чем требует задание.

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

Добавлено через 5 минут
Т.е., чтобы стало так:

C#
1
2
3
4
5
6
if (user == null) {
    throw new NullPointerException();
}
if (user.IsEmpty()) {
    throw new IllegalArgumentException();
}
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 17:53  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Я об этом:
Миниатюры
Это скриншот задания, а не работы моей программы
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 17:55  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Я об этом:
Миниатюры
Это скриншот задания, а не работы моей программы
Миниатюры
Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается  
0
Эксперт .NET
 Аватар для Usaga
14096 / 9313 / 1349
Регистрация: 21.01.2016
Сообщений: 34,989
03.10.2017, 17:55
CBBBBB, а это что:
Миниатюры
Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается  
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 17:56  [ТС]
А вот скриншот работы моей программы, сможешь найти отличия, Usaga?
Миниатюры
Задача «Форматирование кода» не проходит все тесты, теперь на 9-ом тесте заваливается  
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 17:58  [ТС]
Usaga, ты такой тупой
0
Эксперт .NET
 Аватар для Usaga
14096 / 9313 / 1349
Регистрация: 21.01.2016
Сообщений: 34,989
03.10.2017, 18:02
CBBBBB, вы издеваетесь?

Добавлено через 1 минуту
CBBBBB, полегче, молодой человек.

Добавлено через 47 секунд
Тесты не пойми почему не проходят у вас, а тупой - я?
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
03.10.2017, 18:02
Usaga, скрины серые это в условии его задачи как пример решения даны, а консолька это как его код отрабатывает этот пример.

CBBBBB, Без понятия что не нравиться "тестеру" особо задачи не решить, т.к по примерам задания складывается очень странное впечатление, что что-то не описано детальнее. проверяли ли вы, что Ваш код выполняет условия по времени и памяти?
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 18:02  [ТС]
Usaga, Ты в двух скриншотах не можешь разобраться
0
-22 / 2 / 0
Регистрация: 16.09.2015
Сообщений: 86
03.10.2017, 18:04  [ТС]
SeIZVeIZ, ошибка "Неправильный ответ на тест 9", по времени все ок
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.10.2017, 18:04
Помогаю со студенческими работами здесь

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

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

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

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

Не проходит все тесты
#include &lt;iostream&gt; #include &lt;cmath&gt; int main() { long long m, n; std::cin &gt;&gt; m &gt;&gt; n; m %= 12; long long x = n...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru