Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spiral matrix 
V
    Опции темы
CrasyMen
Дата 8.1.2017, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 19.12.2006

Репутация: нет
Всего: 3



Пытаюсь решить задачу https://www.hackerrank.com/contests/coding-...spiral-matrix-1
Скриншот: https://drive.google.com/open?id=0BzPbn-GsU...c2taeDVUSXVDZ1k

Проблема: Не проходит все тесты при сабмите. Я внимательно прочитал условия и попробовал на разных наборах входных данных. По-моему, сделал все что написано в условии. Подскажите что я упускаю.


Код моего решения

Код

function processData(input) {
    const [size, ...matrixAsLine] = input.trim().split(/[\s]/);
    
    // prepare matrix as 2-dimensional array
    const matrix = [];
    for(let rowIndex = 0; rowIndex < size; rowIndex++) {
        const start = size * rowIndex;
        const end = start + size;
        matrix.push(matrixAsLine.slice(start, end));
    }

    // perform size/2 iterations to collect spiral
    let spiral = [];
    for(let circleIndex = 0; circleIndex < size/2; circleIndex++) {
        const firstRowIndex = firstColIndex = circleIndex;
        const lastRowIndex = lastColIndex = size - circleIndex - 1;
        
        const firstRow = matrix[firstRowIndex].slice(firstColIndex, lastColIndex + 1);
        const lastRow = firstRowIndex != lastRowIndex 
                        ? matrix[lastRowIndex].slice(firstColIndex, lastColIndex + 1) 
                        : [];
        
        const firstCol = [];
        const lastCol = [];
        for(let rowIndex = firstRowIndex + 1; rowIndex < lastRowIndex; rowIndex++) {
            const row = matrix[rowIndex];
            firstCol.push(row[firstColIndex]);
            lastCol.push(row[lastColIndex]);
        }
 
        const circle = [...firstRow, ...lastCol, ...lastRow.reverse(), ...firstCol.reverse()];
        
        spiral = spiral.concat(circle);
    }
    
    console.log(spiral.join(' '));


process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
    _input += input;
});

process.stdin.on("end", function () {
   processData(_input);
});

Или можна в гисте посмотреть https://gist.github.com/cwayfinder/06a58715...c6548b1ff761497

Добавлено через 8 минут и 56 секунд
Не понимаю как тема попала в этот раздел. Переместите пожалуста в http://forum.vingrad.ru/forum/javascripts-firststeps.html

Это сообщение отредактировал(а) CrasyMen - 8.1.2017, 11:16


--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
CrasyMen
Дата 8.1.2017, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 19.12.2006

Репутация: нет
Всего: 3



поправил регулярку с /[\s]/ на /[\s]+/ и все тесты прошли


--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1003 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.