网易2016实习笔试:括号匹配问题
来源:互联网 发布:扑克王软件下载 编辑:程序博客网 时间:2024/06/05 16:13
问题描述
字符串值包含六种符号(){}[],输入任意字符串,判断括号是否匹配
package com.problem;/** * 网易实习: * 字符串值包含六种符号(){}[],输入任意字符串,判断括号是否匹配 * 提示:用栈实现 push() pop()方法 */import java.util.Stack;import java.util.Scanner;public class SymbolMatch { public static void main(String[] args) { Scanner input = new Scanner(System.in); while(input.hasNext()) { String str = input.next(); boolean isMatch = isValid(str); System.out.println(isMatch); } input.close(); // 注意关闭资源 } public static boolean isValid(String str) { Character prev, current; Stack<Character> stack = new Stack<Character>(); for(int i = 0; i < str.length(); i++) { current = str.charAt(i); if (stack.empty()) { // 如果栈为空,入栈的字符为右括号,直接返回false,否则正常入栈 if (current.equals(')') || current.equals('}') || current.equals(']')) { return false; } else { stack.push(current); } } else { prev = stack.pop(); if (!match(prev, current)) { // 如果不匹配,且当前字符为右括号"(({]"形式,直接返回false if (current.equals(')') || current.equals('}') || current.equals(']')) { return false; } else { stack.push(prev); // 注意入栈顺序 stack.push(current); } } } } // 全部匹配完之后如果栈为空,则所有匹配完成,否则字符串不匹配 if (stack.empty()) { return true; } else { return false; } } // 判断成对的字符是否匹配 public static boolean match(Character a, Character b) { if (a.equals('(') && b.equals(')')) { return true; } else if (a.equals('{') && b.equals('}')) { return true; } else if (a.equals('[') && b.equals(']')) { return true; } else { return false; } }}
0 0
- 网易2016实习笔试:括号匹配问题
- 网易2016实习研发笔试
- 网易2016年Java工程师实习编程题目之括号匹配的验证
- 2017网易互娱笔试题----括号匹配
- 网易2016春招实习笔试总结
- #每日一题#网易2016实习研发工程师笔试题
- 网易2016暑期实习笔试题--蛇形矩阵
- 括号匹配问题与经典笔试面试题目解析
- 京东笔试 括号匹配
- 网易笔试最长公共子括号序列
- 【网易笔试题】成对的括号
- 20130321 网易实习招募 笔试回忆
- 网易实习笔试真题C/C++
- 2018网易前端实习笔试题
- 网易2016实习招聘
- 网易2017实习笔试题-CPU双核调度问题(动态规划解决)
- 网易2017实习笔试题-CPU双核调度问题(动态规划解决)
- 网易2017实习笔试题-CPU双核调度问题(dp 01背包)
- hdu 5438 Ponds(拓扑排序+dfs)
- 【AKOJ】1343-n*n乘法表
- centos安装mysql源码
- 5-32 哥尼斯堡的“七桥问题” (25分)
- HDU 2028 Lowest Common Multiple Plus(LCM)
- 网易2016实习笔试:括号匹配问题
- 字符串转化为数组,数组转化为字符串。
- 使用ActionSupport验证登录
- android studio cannot resolve symbol 'R'
- eclipse中Ctrl+Shift+F 无法格式化代码
- MAC安装Windows双系统
- [APIO2015]Bali Sculptures
- Android的比重(weight)
- lucene学习笔记(一)