在 C++11 中使用字符串如何满足条件?

0 c++ string char

给定一个字符串,我想检查它是否满足以下条件:

  1. 它仅由小写字母,大字母,数字,[];
  2. 如果[]出现,它们必须正确放置,换句话说,在每个[存在之后]和在每个]存在之前[

例如,这是合法的:[x1[x3]] 虽然这不是:[x1]]x2[

  1. 如果;出现,它必须出现在[]

例如,这是合法的:[;;;][a;bb] 而这不是:x1[];y "

我已经完成了 1 但卡在了 2 和 3 上,有什么帮助吗?

Ben*_*igt 5

只需从左到右一次遍历字符串一个字符(ranged-for 对此有好处),并跟踪嵌套级别(不匹配的数量[)。

规则一:对性格的明显考验

规则2:如果[增加嵌套级别,如果]减少嵌套级别。如果水平变为负数,那就是错误。如果它在字符串的末尾没有回到零,那就是一个错误。

规则 3:如果;嵌套级别必须至少为 1,如果它(小于或)等于 0,则为错误。