java 小的算法问题 成对字符匹配问题 (){}[] 正确{(){}} 正确{}[{}] 正确[()] 正确[(){}] 正确[(())] 正确 {() 错误()[]{ 错误判断是否成对出现的字符串 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不涉及嵌套检查的话,可以这样计算 String ss ="(){}[]"; int[] counters={0,0,0}; // ({[ for (int i=0;i<ss.length();i++){ if (ss.charAt(i)=='('){ counters[0]++; } if (ss.charAt(i)==')'){ counters[0]--; } }最后counters数组都是0 就正确 public static void main(String[] args) {List l = Arrays.asList(-1,-2,-3); List<String> a1 = Arrays.asList("{","(",")","{","}","}"); List aNew = new ArrayList(); for(int i=0;i<a1.size();i++) { aNew.add(checkBraket(a1.get(i))); } if(aNew.size()%2==0) { for(int i=0;i<=aNew.size()/2;i++) { //aNew.forEach(System.out::print); aNew = removeChecked(aNew,l); if(aNew.size()==0) { a1.forEach(System.out::print); System.out.println("正确"); break; } if((int)aNew.get(0)==0) { a1.forEach(System.out::print); System.out.println("错误"); break; } } }else { a1.forEach(System.out::print); System.out.println("错误"); }}static int checkBraket(String a) { int index = 0; if("(".equals(a)) { index = 1; } if(")".equals(a)) { index = -1; } if("[".equals(a)) { index = 2; } if("]".equals(a)) { index = -2; } if("{".equals(a)) { index = 3; } if("}".equals(a)) { index = -3; } return index; } static List removeChecked(List a,List l) { List result = new ArrayList<>(); for(int i=0;i<a.size();i++) { for(int n=0;n<l.size();n++) { if(a.get(i)==l.get(n)) { if((int)a.get(i-1)==-(int)l.get(n)) { a.remove(i-1); a.remove(i-1); if(a.size()==0) { return a; } }else { result.add(0); return result; } } } } return a; } Spring Data Jpa的问题!~ 引包报错 是少jar包吗? javamail的问题 struts2 大家用什么ajax框架? 在线的前辈,用main(String[] args) 方法里的参数传值,怎么不能传啊??在线等 关于weblogic的一个有趣问题 这是用小程序编写的一个数字时钟~可是日期和现在差一月!请高手帮忙改改~谢谢谢谢谢! 100分求tomcat+struts+cocoon 如何使返回的记录集RS转换成XML ejb入门 系统中的日志是用AOP实现的,还是显性的用log.info打印呢 springcloud 这个bug求解 急!
int[] counters={0,0,0}; // ({[
for (int i=0;i<ss.length();i++){
if (ss.charAt(i)=='('){
counters[0]++;
}
if (ss.charAt(i)==')'){
counters[0]--;
}
}
最后counters数组都是0 就正确
List l = Arrays.asList(-1,-2,-3);
List<String> a1 = Arrays.asList("{","(",")","{","}","}");
List aNew = new ArrayList();
for(int i=0;i<a1.size();i++) {
aNew.add(checkBraket(a1.get(i)));
}
if(aNew.size()%2==0) {
for(int i=0;i<=aNew.size()/2;i++) {
//aNew.forEach(System.out::print);
aNew = removeChecked(aNew,l);
if(aNew.size()==0) {
a1.forEach(System.out::print);
System.out.println("正确");
break;
}
if((int)aNew.get(0)==0) {
a1.forEach(System.out::print);
System.out.println("错误");
break;
}
}
}else {
a1.forEach(System.out::print);
System.out.println("错误");
}
}static int checkBraket(String a) {
int index = 0;
if("(".equals(a)) {
index = 1;
}
if(")".equals(a)) {
index = -1;
}
if("[".equals(a)) {
index = 2;
}
if("]".equals(a)) {
index = -2;
}
if("{".equals(a)) {
index = 3;
}
if("}".equals(a)) {
index = -3;
}
return index;
}
static List removeChecked(List a,List l) {
List result = new ArrayList<>();
for(int i=0;i<a.size();i++) {
for(int n=0;n<l.size();n++) {
if(a.get(i)==l.get(n)) {
if((int)a.get(i-1)==-(int)l.get(n)) {
a.remove(i-1);
a.remove(i-1);
if(a.size()==0) {
return a;
}
}else {
result.add(0);
return result;
}
}
}
}
return a;
}