ACM试题 - 括号配对问题 - Java中字符串截取和定位问题

ACM试题题源(括号配对问题):http://acm.nyist.net/JudgeOnline/problem.php?pid=2

提交代码:

    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
        
            Scanner cin = new Scanner(System.in);
            int n = cin.nextInt();
            String[] ans = new String[n];
            
            for (int i = 0; i < n; i++) {
            
                ans[i] = cin.next();
                String res = "";
                
                for(int j =0;j<ans[i].length();j++){
                
                    if(res.isEmpty()){
                        res = res + ans[i].substring(j, j+1);
                    }else if(res.charAt(res.length()-1)==‘(‘&&ans[i].charAt(j)==‘)‘||(res.charAt(res.length()-1)==‘[‘&&ans[i].charAt(j)==‘]‘)){
                        res = res.substring(0,res.length()-1);
                    }else{
                        res = res + ans[i].substring(j, j+1);
                    }
                }
                
                if(res.isEmpty()){
                    ans[i] = "Yes";
                }else {
                    ans[i] = "No";
                }
            }
            
            for(int i = 0 ;i<ans.length;i++){
                System.out.println(ans[i]);
            }
        }
    }

总结:

注意String.charAt(int index)和Sring.substring(int beg, int end)中的参数值,也就是下标怎么取,例如:        

String str = "abcde";     
System.out.println(str.charAt(0)) // 输出:a(单个字符) System.out.println(str.charAt(2)) // 输出:c(单个字符) System.out.println(str.substring(0,1)) // 输出:a(字符串) System.out.println(str.substring(1,3)) // 输出:bc(字符串)

 

ACM试题 - 括号配对问题 - Java中字符串截取和定位问题,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。