Показать сообщение отдельно
  #6 (permalink)  
Старый 18.01.2015, 21:34
Интересующийся
Отправить личное сообщение для y0uix Посмотреть профиль Найти все сообщения от y0uix
 
Регистрация: 22.10.2013
Сообщений: 11

Спасибо всем огромное, самый мощный анклав JS-ниндзя, который я встречал.

Вот два решения:
function validBraces(braces) {
  var assoc = {
    '(': ')',
    '{': '}',
    '[': ']'
  },
  stack = [],
  char,
  len,
  i;

  for (i = 0, len = braces.length; i < len; i += 1) {
    char = braces[i];
    if (assoc[char]) {
      stack.push(char);
    } else {
      if (char !== assoc[stack.pop()]) {
        return false;
      }
    }
  }

  return !stack.length;
}


function validBraces(braces) {
  var pattern = /\(\)|\{\}|\[\]/g;
  while (pattern.test(braces)) {
    braces = braces.replace(pattern, '');
  }
  return !braces.length;
}
Ответить с цитированием