当前位置: 代码迷 >> Java相关 >> 华为的一道机试,你会吗,用java写出来,该怎么解决
  详细解决方案

华为的一道机试,你会吗,用java写出来,该怎么解决

热度:72   发布时间:2016-04-22 20:56:39.0
华为的一道机试,你会吗,用java写出来

------解决思路----------------------
   public int find(String inputstr){
        String s;
        int a = 1;
        if(inputstr.contains("[")){
            if(inputstr.contains("]")){
                if(inputstr.indexOf("[") < inputstr.indexOf("}")){
                s = inputstr.substring(inputstr.indexOf("["),inputstr.indexOf("}")+1);
                if(s.contains("(")){
                    if(s.contains(")")){
                        if(s.indexOf("(") < s.indexOf(")")){
                            a = 0;
                        }
                        else{
                            a = 1;
                        }
                    }else{
                        a = 1;
                    }
                }else{
                    a = 1;
                }
                }else{
                    a = 1;
                }
            }else{
                a = 1;
            }
        }else{
            if(!inputstr.contains("]") && !inputstr.contains("(") && !inputstr.contains(")"))
            {
                a = 0;
            }
        }
        return a;

    }
数组的比较烦,思路差不多
------解决思路----------------------
public static int checkStr(String s){

int resultValue = 0; //初始返回值
LinkedList<Byte> ll= new LinkedList<Byte>(); //用于存放括号的栈
byte[] bs = s.getBytes();
//遍历String
for(byte b : bs){
//如果是左括号,存入栈
if(b == '('
------解决思路----------------------
b == '['){
ll.add(b);
}else if(b == ')'){
//如果是‘)’,取栈中最后的括号,判断是否匹配
//若不匹配,则返回1;
if(ll.getLast() != '('){
resultValue = 1;
break;
}
}else if(b == ']'){
if(ll.getLast() == '['){
resultValue = 1;
break;
}
}
}
return resultValue;
}
------解决思路----------------------

public static int isMatch(String str){
int  result = 0;
LinkedList<Character> list = new LinkedList<Character>();
if(str != null && str.trim().length() > 0){
char[] chars = str.toCharArray();
for(Character c : chars){
if(c == '[' 
------解决思路----------------------
 c == '('){
list.push(c);
}
if(c == ')'){
Character character = list.pop();
if(!(character == '(')){
  相关解决方案