括号匹配
来源:互联网 发布:欣哥刷枪软件 编辑:程序博客网 时间:2024/06/01 08:45
今天网易机试,10个单选,10个多选,3个简单,2个编程题,,,单选考的到还是正常,都是java的基础知识,感觉好不错,看到多选题就有点方,,,多选是总结了几个知识点就是JVMjava虚拟机的理解,Linux命令,数据库,计算机网络http的知识,虽然一直在使用java语言写android,但是这些知识可能也是必须掌握的内容吧,有时间还是要多看看这方面的书,查漏补缺。
至于编程题,最近在牛客网,华为OJ上连做了几天的编程题,基本还行吧,总得来说,很喜欢编程通过编译器显示恭喜通过的感觉,感觉有点爱上了它。
网易的两个编程题,一个是清单排序,一个是括号匹配
只会做括号匹配,清单排序在群里也没有要到代码。
输入一行字符串,只包括“(”“)”“[”“]”“{”“}”,六种符号,判断输出的符号是否匹配,比如(){[]}
匹配,([}]不匹配
思路:这题显然用栈去做,如果是左括号直接进栈,如果是右括号,弹出栈顶,判断是否匹配
代码:
import java.util.Scanner;import java.util.Stack;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub Scanner in=new Scanner(System.in); while(in.hasNext()){ Stack<Character> stack=new Stack<Character>(); String s=in.nextLine(); int flag=0; //stack.push('#'); String s1="([{"; String s2=")]}"; char[] chars=s.toCharArray(); if(chars.length%2==0){//奇数肯定不匹配 for(int i=0;i<chars.length;i++){ int n1=s1.indexOf((chars[i]))+1;//是左括号直接进栈 if(n1!=0){ stack.push(chars[i]); } int n2=s2.indexOf((chars[i]))+1;//如果是右括号,弹出栈顶,进行匹配,成功flag=1,不成功flag=0退出 if(n2!=0){ char c=stack.pop(); if(Match(c,chars[i])){ flag=1; } else{ flag=0;break; } } } } if(flag==1){ System.out.println("YES"); } else System.out.println("NO"); } }private static boolean Match(char c, char d) {// TODO Auto-generated method stubif(c=='('&&d==')'){return true;}if(c=='['&&d==']'){return true;}if(c=='{'&&d=='}'){return true;}return false;}}
有好的思路,请指教,直接评论吧,互相学习。
0 0
- 括号括号括号匹配
- 括号匹配
- 括号匹配
- 括号匹配
- 括号匹配
- 括号匹配/()[]
- 括号匹配
- 括号匹配
- 括号匹配
- 括号匹配
- 括号匹配!!!!
- 括号匹配
- 括号匹配
- 括号匹配
- 括号匹配
- 括号匹配
- 括号匹配
- 括号匹配
- 高性能可靠服务集群架构
- 本周日记
- 酷欧天气实战
- 缅怀
- 华硕笔记本使用老毛桃工具迅速重装系统(动作快估计就二十分钟,高手勿喷)
- 括号匹配
- 十大监视SQL Server性能的计数器
- CentOS 6.4下Squid代理服务器的安装与配置
- nyoj 119 士兵杀敌(三)
- Android中AsyncTask的使用
- 网易面试题 (第24题) 对字符串的一种编码
- NEC笔试汇总
- Memcached协议解析及Go语言客户端实现
- android不透明度对应的值