zoukankan      html  css  js  c++  java
  • OJ——华为编程题目:输入字符串括号是否匹配

    package t0815;
    /*
     * 华为编程题目:输入字符串括号是否匹配
     * 若都匹配输出为0,否则为1
     * 样例输入:Terminal user [name | number (1)]
     * 样例输出:0
     * Java版本
     */
    /*
     * 个人总结:
     * (1)语法上Java的输入Scanner使用
     * (2)char[] arr=mxf.toCharArray()的使用,将输入的字符串转成字符数组;这样就可以一个
     *     一个的遍历
     * (3)算法上,这里使用了经典的入栈和出栈的思想
     * 
     */
    
    import java.util.Scanner;
    import java.util.Vector;
    
    public class huawei_StringMatching {
        public static void main(String[] args){
            System.out.println("请按照规格输入字符串");
            Scanner ScStr=new Scanner(System.in);
            String sqy = ScStr.nextLine();    
            
            System.out.print(Check(sqy));        
        }
        public static int Check(String mxf){
            int count=0;
            int flag=1;
            char[] arr=mxf.toCharArray();    
            Vector<Character> vec=new Vector<Character>();
            for(int j=0;j<arr.length;j++){
                if(arr[j]=='(')
                    {vec.add(arr[j]);count++;} //入栈,并且计数加1
                if(arr[j]=='[')
                    {vec.add(arr[j]);count++;}//入栈,并且计数加1
                if(arr[j]==']'){
                    if(vec.elementAt(count-1)=='[')
                    {vec.remove(count-1);count--;}//出栈,并且计数减1
                }            
                if(arr[j]==')'){
                    if(vec.elementAt(count-1)=='(')
                        {vec.remove(count-1);count--;}////出栈,并且计数减1
                }
            }
            if(vec.isEmpty())
                flag=0;  // 如果为空,说明可以正确匹配
            return flag;
        }
        
        
    }

    结果:

    请按照规格输入字符串
    Terminal user [name | number (1)]
    0

  • 相关阅读:
    移动端-纯css隐藏滚动条解决方案
    阻止点击穿透
    JS的防抖与节流
    go 自动安装项目依赖包
    git 修改远程仓库
    git 基础命令
    go 包govalidator
    go email
    windows下Redis的安装和使用
    go xorm,负载均衡
  • 原文地址:https://www.cnblogs.com/snowwhite/p/4734304.html
Copyright © 2011-2022 走看看