Задача форматирования таблицы не проходит все тесты - C#
Формулировка задачи:
Задача не проходит все тесты. Пример, указанный в условии работает, а потом тестировщик пробует еще несколько различных вариантов входных данных. Какой вариант не сработал, он не показывает. Помогите пожалуйста разобраться, какие условия в моем коде не соблюдены.
Условие задачи:
Пример из условия задачи(он отработал):
Код программы, реализованной мной на на C#:
Прикладываю пример, который из условия(он отработал) в виде фото
Форматирование таблицы
ограничение по времени на тест2 секунды ограничение по памяти на тест256 мегабайт вводstdin выводstdout Вам дана таблица, заданная набором строк. Разделителями ячеек в каждой строке являются символы «|». Содержимое каждой ячейки — это последовательность пробелов, цифр и заглавных и строчных латинских букв. Вам необходимо отформатировать эту таблицу следующим образом: 1) убрать из всех значений ячеек начальные и концевые пробелы; 2) установить ширину каждого столбца равную наибольшей длине значения в этом столбце; 3) выравнить значения всех ячеек по центру столбца, добавив начальные и концевые пробелы; 4) если значение невозможно выравнить точно по центру ячейки, то расположите его ближе к левой границе.Входные данные
Входные данные состоят из некоторого количество строк, состоящих из пробелов, цифр, заглавных и строчных латинских букв и символов «|». Значение ячейки может быть пустым. Гарантируется, что все строки таблицы состоят из одинакового числа ячеек. Первый и последний символ каждой строки входных данных — это символы «|». Размер входных данных не превосходит 10 Кб.Выходные данные
Выведите отформатированную по описанным правилам таблицу.входные данные
|test|me|one two| | a | three spaces | |выходные данные
|test| me |one two| | a |three spaces| |using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp90 { class Program { static void Main(string[] args) { string current = ""; List<List<string>> mass = new List<List<string>>(); List<string> row = new List<string>(); List<string> nrow = new List<string>(); int i = 0; while ((current = Console.ReadLine()) != null) { row = current.Split('|').ToList<string>(); mass.Add(new List<string>()); for (int k = 1; k < row.Count - 1; k++) { row[k] = row[k].TrimStart(' '); row[k] = row[k].TrimEnd(' '); mass[i].Add(row[k]); } i++; } List<int> num = new List<int>(); for (int e = 0; e < mass.Count; e++) { for (int f = 0; f < mass[e].Count; f++) { num.Add(0); if (num[f] < mass[e][f].Length) { num[f] = mass[e][f].Length; } } } for (int e = 0; e < mass.Count; e++) { for (int f = 0; f < mass[e].Count; f++) { while (mass[e][f].Length < num[f] - 1) { mass[e][f] = " " + mass[e][f] + " "; if (mass[e][f].Length == num[f] - 1) { mass[e][f] = mass[e][f] + " "; } } } } for (int e = 0; e < mass.Count; e++) { for (int f = 0; f < mass[e].Count; f++) { Console.Write("|" + mass[e][f]); } Console.WriteLine("|"); } Console.ReadLine(); } } }
Решение задачи: «Задача форматирования таблицы не проходит все тесты»
textual
Листинг программы
for (int e = 0; e < mass.Count; e++) { for (int f = 0; f < mass[e].Count; f++) { while (mass[e][f].Length < num[f] - 1) { mass[e][f] = " " + mass[e][f] + " "; if (mass[e][f].Length == num[f] - 1) { mass[e][f] = mass[e][f] + " "; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д