蔚来7.1笔试第三题html
public static void main(String[] args) { //System.out.println("YES"); Deque<String > st=new LinkedList<>(); Scanner in=new Scanner(System.in); String preS = in.nextLine(); StringBuilder sb=new StringBuilder(); for (char c : preS.toCharArray()) { if(c=='<'){ sb.append(" "); } sb.append(c); if(c=='>'){ sb.append(" "); } } boolean flag=true; String[] ss = sb.toString().split(" "); List<String > temp=new LinkedList<>(); //以上是对字符串的预处理,将字符串划分为三种类型:第一种<abc> 第二种 </abc> 第三种 非第一种和第二种 for (String s : ss) { if(s.equals("")){ continue; } temp.add(s); } ss=temp.toArray(new String[0]); for (String s : ss) { if(!s.matches("</[a-z]+>")){ // System.out.println(s); st.push(s); } if(s.matches("</[a-z]+>")){ if(st.isEmpty()){ flag=false; break; } String pop = st.pop(); if(!pop.matches("<[a-z]+>")){ if(st.isEmpty()){ flag=false; break; } pop=st.pop(); } if(!pop.substring(1,pop.length()-1). equals(s.substring(2,s.length()-1))){ flag=false; break; } } } if(!st.isEmpty()){ flag=false; } System.out.println(flag?"YES":"NO"); }
#蔚来笔试#