javascript - 如何编写一个 javascript 函数来检查字符串中的第一个字符和最后一个字符是否相等

标签 javascript arrays regex function

我一直在做这个 javascript 挑战,我非常接近,但有些地方不对。这是挑战:

给定一个字符串数组,其中包含三种类型的大括号:round ()、square [] 和 curly {} 你的任务是编写一个函数来检查每个字符串中的大括号是否正确匹配。如果每个字符串中的大括号匹配则打印 1 到标准输出 (console.log),如果不匹配则打印 0(每行一个结果)

我的代码是这样的:

var infoToParse = [ ")(){}", "[]({})", "([])", "{()[]}", "([)]" ]; 

function checkBraces(infoToParse) {
    var tabChars = infoToParse;
    for (i= 0; tabChars.length - 1; i+=1) {
        if (tabChars[i].charAt(0) === tabChars[i].charAt(tabChars[i].length-1)){
            console.log(1);
        }else{
            console.log(0);
        }
    }
}

checkBraces(infoToParse);

当前数组项的输出应该是Output: 0 1个 1个 1个 0

最佳答案

正如评论中所指出的,只有第一个和最后一个字符相同不会导致正确的解决方案。

您可以尝试以下技巧: 维护一个堆栈,每次遇到左括号,即圆形“(”、方形“[”或 curl “{”;将其插入堆栈。现在每当遇到右括号时,从堆栈中弹出一个元素。如果这两个匹配,即两者属于同一类型,然后继续直到堆栈和字符串都为空。如果在任何时候它们不匹配,则中断并返回 false。 我会为其编写代码并尽快发布。

关于javascript - 如何编写一个 javascript 函数来检查字符串中的第一个字符和最后一个字符是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31540166/

相关文章:

java - 如何在java中创建一个包含10个任意范围的表并选择适当的间隔?

javascript - 重新格式化日期正则表达式

javascript - 使用 $.get 和 $.each 生成 jQuery html 代码

javascript - 如何正确配置这个虚拟 Angular 项目

javascript - 创建 JavaScript 倒计时

javascript - 尝试制作一个 html 复选框,将数字添加到输出字段

javascript - ES6 : Find objects containing object ID in array, 并合并总数

javascript - 如何使用 google actions sdk 迭代 js 对象数组并在 google Assistant 应用程序中显示列表选择器

java - 如何在java中使用正则表达式用项目符号(所有类型)分割字符串

javascript - 如何在 Angular2 中使用正则表达式制作管道?