freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/data-structures/learn-how-a-stack-works.rus...

4.0 KiB
Raw Blame History

id title challengeType videoUrl localeTitle
587d8250367417b2b2512c5e Learn how a Stack Works 1 Узнайте, как работает стек

Description

Вероятно, вы знакомы со стопкой книг на своем столе. Вероятно, вы использовали функцию отмены текстового редактора. Вы также, вероятно, используете для нажатия кнопки «Назад» на своем телефоне, чтобы вернуться к предыдущему виду в приложении. Вы знаете, что у них общего? Все они хранят данные таким образом, чтобы вы могли перемещаться назад. Самая верхняя книга в стеке была той, которая была помещена последней. Если вы удалите эту книгу из верхней части стека, вы откроете книгу, которая была помещена туда до последней книги, и так далее. Если вы думаете об этом, во всех приведенных выше примерах вы получаете тип обслуживания Last-In-First-Out . Мы постараемся имитировать это с помощью нашего кода. Эта схема хранения данных называется стеком . В частности, нам пришлось бы реализовать метод push() который толкает объекты JavaScript вверху стека; и pop() , который удаляет объект JavaScript, который находится в верхней части стека в текущий момент.

Instructions

Здесь у нас есть набор домашних заданий, представленных как массив: "BIO12" находится у основания, а "PSY44" находится в верхней части стека. Измените данный массив и обработайте его как stack используя описанные выше методы JavaScript. Удалите верхний элемент "PSY44" из стека. Затем добавьте "CS50" в новый верхний элемент стека.

Tests

tests:
  - text: <code>homeworkStack</code> должен содержать только 4 элемента.
    testString: 'assert(homeworkStack.length === 4, "<code>homeworkStack</code> should only contain 4 elements.");'
  - text: Последним элементом <code>homeworkStack</code> должен быть <code>&quot;CS50&quot;</code> .
    testString: 'assert(homeworkStack[3] === "CS50", "The last element in <code>homeworkStack</code> should be <code>"CS50"</code>.");'
  - text: <code>homeworkStack</code> не должны содержать <code>&quot;PSY44&quot;</code> .
    testString: 'assert(homeworkStack.indexOf("PSY44") === -1, "<code>homeworkStack</code> should not contain <code>"PSY44"</code>.");'
  - text: Исходное объявление <code>homeworkStack</code> таблицы не должно быть изменено.
    testString: 'assert(code.match(/=/g).length === 1 && /homeworkStack\s*=\s*\["BIO12"\s*,\s*"HIS80"\s*,\s*"MAT122"\s*,\s*"PSY44"\]/.test(code), "The initial declaration of the <code>homeworkStack</code> should not be changed.");'

Challenge Seed

var homeworkStack = ["BIO12","HIS80","MAT122","PSY44"];
// Only change code below this line

Solution

// solution required