格式良好的java字符串

格式良好的java字符串,java,string,Java,String,一位朋友接受采访时问了以下问题: 给定一个由字符,,{,},[,]组成的字符串,确定其格式是否正确 在我看来,我会回答“否”,因为它是一个字符串,所以打印所述字符需要/character。这是正确的还是我偏离了底线 你似乎在问面试问题是什么意思 答案是这就是面试官的本意。如果你需要,你或你的朋友应该向面试官要求澄清。事实上,如果你没有要求面试官澄清,你可能会失分。。。谢谢你没有问 然而,一个合理的解释是,问题是要求受访者写一个方法来检查由这些字符组成的字符串是否有平衡的括号;e、 g [

一位朋友接受采访时问了以下问题:

给定一个由字符,,{,},[,]组成的字符串,确定其格式是否正确


在我看来,我会回答“否”,因为它是一个字符串,所以打印所述字符需要/character。这是正确的还是我偏离了底线

你似乎在问面试问题是什么意思

答案是这就是面试官的本意。如果你需要,你或你的朋友应该向面试官要求澄清。事实上,如果你没有要求面试官澄清,你可能会失分。。。谢谢你没有问

然而,一个合理的解释是,问题是要求受访者写一个方法来检查由这些字符组成的字符串是否有平衡的括号;e、 g

    []{[]}    OK
    [         BAD
    [(])      BAD
FWIW-格式良好的字符串没有通用定义。相反,如果可以使用语法的结果为字符串构造有效的解析树,那么就某些语法而言,字符串被认为是格式良好的


本例中的问题是,至少在这里没有提供这样的语法。因此,所述的面试问题是不完整的/模棱两可的/只有当你准备猜测面试官的语法含义时才可以回答。

如果格式良好意味着每个大括号都用一个匹配的大括号关闭,并且没有类似{}的事件,那么我建议你使用stack

检查字符串中的每个字符 如果是打开支架,则将其推到堆栈上 如果是右大括号,从堆栈中弹出并查看是否匹配 ->若您遍历了字符串中的所有字符,并且堆栈为空,那个么您的字符串是格式良好的
正确的答案正是你所说的格式良好是什么意思?模糊的需求应该更加具体,这表明您正在寻找正确的功能,而不是快速修复

我们可以猜测它的意思。这可能意味着元素的正确嵌套,例如,左括号和右括号遵循xml样式的标记语法,其中

{([)]}
不会是很好的形式

它可能意味着正确转义,以便可以在字符被解释为命令的环境中打印。在这种情况下,格式良好可能意味着

\{\(\[
这甚至可能意味着,一旦找到了开头字符,接下来唯一的合法字符就是结尾字符。在这种情况下,以下内容的格式将不正确

{()}
如果格式良好仅意味着每个开始项有一个结束项,那么根据定义,以下内容甚至可以

)(

简言之,当你有疑问的时候,问。问是很多事情的关键,它表明你在关注和思考。这些技能比知道答案重要得多,因为知道答案而不理解请求会导致回答错误的问题。

你可能会误解他们提出的问题,他们可能是想检查双方是否匹配。我不理解这个问题;定义格式良好。这就是我有点迷失的地方。对我来说这是个模棱两可的问题。是什么让你认为打印这个字符串需要“/”字符呢?亲兄弟。不需要堆叠。只需为每一对保留一个计数器。仅使用计数器,当大括号因不匹配而关闭时,您不会忽略事件one@m0skit0-都德无堆栈算法无法检测到不正确的嵌套。@莫斯基托-使用此[]尝试该算法。。。它有不正确的嵌套。@m0skit0-实际上,如果您检查计数器是否为负以及是否为零,那么基于计数器的检查程序应该可以工作。。。例如,提问是你和面试官合作的关键。与可能雇用你的人交流是件好事,因为他们对你了解得更多,这有助于他们从一大堆未知的人中挑选你,而你对他们了解得更多,这有助于你避开那些会让你生活痛苦的商店