不脱发的尼古拉斯萧瑟
2017-06-08 02:34
采纳率: 50%
浏览 1.5k
已采纳

java中的算法来校验字符串是否规则

例如:String str = "[{][<<<]]";有一段不规则的字符串
如何写一个算法来验证他是不是规则的:比如"{[<>]}"这种是规则的

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • yizishou 2017-06-08 03:12
    已采纳
    private static boolean test(String s) {
      Map<Character, Character> pair = new TreeMap<>();
      pair.put('[', ']'); pair.put('{', '}'); pair.put('<', '>'); pair.put('(', ')');
      Stack<Character> stack = new Stack<>();
      for (char c : s.toCharArray()) {
        if (pair.containsKey(c)) {
          stack.push(c);
        } else if (pair.containsValue(c)) {
          if (stack.isEmpty() || c != pair.get(stack.pop())) {
            return false;
          }
        }
      }
      return stack.isEmpty();
    }
    
    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题