Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数来检查正确性_Javascript - Fatal编程技术网

javascript函数来检查正确性

javascript函数来检查正确性,javascript,Javascript,我这里有一个评估,我提供了一个解决方案,但是当我运行代码时,结果很奇怪。 评估结果如下: “您将获得一系列字符,这些字符由括号()和括号[]组成 这种类型的字符串被认为是正确的: 如果它是空的或空的字符串 如果字符串A正确,(A)和[A]正确 如果字符串A和B正确,则连接AB也正确 正确的 输入:字符串最多包含10000个字符 示例:[()]正确,(()[])正确,([)]不正确,(不正确 执行函数check检查此类型字符串的正确性。 check如果字符串正确,则返回true,否则返回fal

我这里有一个评估,我提供了一个解决方案,但是当我运行代码时,结果很奇怪。 评估结果如下: “您将获得一系列字符,这些字符由括号()和括号[]组成

这种类型的字符串被认为是正确的:

  • 如果它是空的空的字符串
  • 如果字符串A正确,(A)[A]正确
  • 如果字符串AB正确,则连接AB也正确 正确的
输入:字符串最多包含10000个字符

示例:[()]正确,(()[])正确,([)]不正确,不正确

执行函数check检查此类型字符串的正确性。 check如果字符串正确,则返回true,否则返回false

所以我做了下面的代码:

功能检查{
if((s==null)| | s.length==0)返回true;
如果(检查=true){
检查((s))==true&检查([s])==true;
}否则{
检查=false;
}
如果(检查(s1)==true&&检查(s2)==true){
检查(s1+s2)==true;
}否则{
返回false;
}
}
console.log(检查(“([])”);
console.log(检查(“()[]”);
日志(检查(“([)]”);
控制台日志(检查(')(');

log(检查(“[(())”);
您可以简单地使用stack进行括号匹配(为了简洁起见省略了边缘大小写)

功能检查{
常量堆栈=[];
对于(让c/s){
如果(c=='['| | c==='(')
堆栈推送(c);
else if((c==']'&&stack[stack.length-1]=='['))
||(c=='')和&stack[stack.length-1]=='('))
stack.pop();
}
return!stack.length;
}
console.log(检查(“([])”);
console.log(检查(“()[]”);
日志(检查(“([)]”);
控制台日志(检查(')(');

console.log(check(“[(()))”);
如果(check=true)做什么你认为
if(check=true)
做什么?如果check=true,s是正确的。为了确定对
check
的调用应该返回什么,你调用
check(s)
。你看到问题了吗?@Scott Hunter,你是什么意思?你的代码是有效的JS,但在逻辑上没有多大意义。你能补充一些你认为每个条件都在做什么的细节吗?