该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我写了个 先不说运行效率和内存限制,先说对不对 我认为是对的 但是提交后说 wrongAnswer,
就是运行结果错误,但我想不出还有哪种情况没考虑,代码贴出来 大家帮看看:
package com;
import java.util.Scanner;
/**
* @author ZZP
*括号配对
*/
public class BracketPair {
public static void main(String[] args){
Scanner sin = new Scanner(System.in);
int length = Integer.parseInt(sin.next()); //读取长度
String[] array = new String[length];
String temp = null;
for(int i = 0;i
temp = sin.next();
array[i] = temp;
temp = null;
}
String yes = "Yes"; // 定义标识符
String no = "No";
char type1 = '(';
char type2 = ')';
char type3 = '[';
char type4 = ']';
int right = 0; //正确标识符
String arrayTemp = null; //临时字符串
for(int i =0;i
arrayTemp = array[i];
if(arrayTemp.length()%2!=0){ //如果是长度为奇数 直接输出No
System.out.println(no);
}else{
arrayTemp = arrayTemp.replace("[]", "").replace("()", ""); //这个地方我考虑,如果存 //在[] 或()的话一定是配对的 就直接替换为空
int stringLength = arrayTemp.length(); //替换后的字符串长度
for(int j = 0 ;j
if((arrayTemp.charAt(j)==(type1)&&arrayTemp.charAt(stringLength-j-1)==
(type2))||(arrayTemp.charAt(j)==(type3)&&arrayTemp.charAt(stringLength-j-1) ==(type4))){ //第一个括号与最后一个括号是否配对,循环以此类推,匹配的话
//不做操作
}else{ //不匹配的话标识符加一
right++;
}
}
if(right>0){ //标识符大于0则表示有不匹配的
System.out.println(no);
}else{
System.out.println(yes);
}
}
}
}
}