• 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。

    • 有效字符串需满足:

    1. 左括号必须用相同类型的右括号闭合。
    2. 左括号必须以正确的顺序闭合。
    1. // 暴力法1
    2. var isValid = function(s) {
    3. const reg = /\(\)|{}|\[\]/
    4. while(s.match(reg)) {
    5. s = s.replace(reg, '')
    6. }
    7. return s === ''
    8. };
    9. // 暴力法2
    10. var isValid = function (s) {
    11. while (s.length) {
    12. let temp = s;
    13. s = s.replace('()', '');
    14. s = s.replace('{}', '');
    15. s = s.replace('[]', '');
    16. if (s === temp) return false;
    17. }
    18. return true;
    19. };
    20. // 都是把闭合的括号一直进行替换
    21. // 盏出盏进
    22. var isValid = function(s) {
    23. const stack = [];
    24. const map = {
    25. '(': ')',
    26. '[': ']',
    27. '{': '}',
    28. }
    29. for (let i of s) {
    30. if (map[i]) {
    31. stack.push(map[i])
    32. } else if (i !== stack.pop()) {
    33. return false;
    34. }
    35. }
    36. return !stack.length
    37. };