Skip to content

Instantly share code, notes, and snippets.

@vitkarpov
Last active January 31, 2021 15:24
Show Gist options
  • Select an option

  • Save vitkarpov/e3fd3840e48ad693a9be0feba93cfe20 to your computer and use it in GitHub Desktop.

Select an option

Save vitkarpov/e3fd3840e48ad693a9be0feba93cfe20 to your computer and use it in GitHub Desktop.

Revisions

  1. vitkarpov revised this gist Jan 31, 2021. 1 changed file with 5 additions and 7 deletions.
    12 changes: 5 additions & 7 deletions balanced-brackets.js
    Original file line number Diff line number Diff line change
    @@ -9,15 +9,13 @@ function isValid(s) {
    const st = [];
    for (let i = 0; i < s.length; i++) {
    if (isClosedBracket(s[i])) {
    if (brackets[s[i]] !== st.pop()) {
    return false;
    // это открывающая скобка, т.к. других символов по условию в строке нет
    } else {
    st.push(s[i]);
    }
    if (brackets[s[i]] !== st.pop()) return false;
    // это открывающая скобка, т.к. других символов по условию в строке нет
    } else {
    st.push(s[i]);
    }
    return st.length === 0;
    }
    return st.length === 0;
    }
    function isClosedBracket(ch) {
    return [')', ']', '}'].indexOf(ch) > -1;
  2. vitkarpov created this gist Feb 10, 2020.
    24 changes: 24 additions & 0 deletions balanced-brackets.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    function isValid(s) {
    const brackets = {
    ')': '(',
    ']': '[',
    '}': '{'
    };
    // в качестве стека в JavaScript можно использовать обычный массив
    //(если пользоваться только «разрешенными» методами push & pop)
    const st = [];
    for (let i = 0; i < s.length; i++) {
    if (isClosedBracket(s[i])) {
    if (brackets[s[i]] !== st.pop()) {
    return false;
    // это открывающая скобка, т.к. других символов по условию в строке нет
    } else {
    st.push(s[i]);
    }
    }
    return st.length === 0;
    }
    }
    function isClosedBracket(ch) {
    return [')', ']', '}'].indexOf(ch) > -1;
    }