• 去哪儿2015笔试题JAVA实现


    第一题代码:

    分析:将字符数组中的每个字符串,找出其中最长的那个与字符数组中长度进行比较:

    a、当最长的字符串的长度大于等于字符数组的长度时,直接输出

    b、当最长的字符串的长度小于字符数组的长度时,找出该长度下整数值最大的那个字符串,在前面部0输出

    package com.njupt;
    
    public class Heia {
    	
    	public String MaxLength(String[] string){
    		int max=Integer.valueOf(string[0]);
    		int index=0;
    		for(int i=1;i<string.length;i++){
    			int temp=Integer.valueOf(string[i]);
    			if(max<temp){
    				max=temp;
    				index=i;
    			}
    		}
    		if(string[index].length()>=string.length){
    			return string[index];
    		}
    		else{
    			String str="";
    			int tem=string.length-string[index].length();
    			for(int j=0;j<tem;j++){
    				str +="0";
    			}
    			str +=string[index];
    			return str;
    		}
    	}
    	
    	public static void main(String[] args){
    		String[] string={"","2","0"};
    		Heia h=new Heia();
    		System.out.println(h.MaxLength(string));
    	}
    
    }
    

      

    第二题代码:(代码可能还有点问题,等待修改)

    import java.util.ArrayList;
    
    
    public class Test {
    
    	
    	public void QuNaer(String string){
    		
    		ArrayList<String> alist=new ArrayList<>();
    		string=string.trim();
    		String str=string.valueOf(string.charAt(0));
    		for(int i=1;i<string.length();i++){
    			if(string.charAt(i)=='-'){
    				str=str.trim();
    				alist.add(str);
    				str="-";
    			}
    			else{
    				if(string.charAt(i)!=' '){
    					str +=string.charAt(i);
    				}
    				else{
    					if(string.charAt(i-1)!=' '){
    						str +=" ";
    					}
    				}
    			}
    		}
    		str=str.trim();
    		alist.add(str);
    		System.out.println(alist);
    	}
    	
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		String string="-name  Lily  -age 21     -school                         "zhao                                        yan"";
    		//String string ="    zhao   yan     ";
    		Test t=new Test();
    		t.QuNaer(string);
    	}
    
    }
    

      

    第三题代码:

    分析:因为该题的目标是如何使得字符串a通过添加或者减少一下字符,最终得到字符串b

    注:字符串a=“bc“,字符串b=”cb“;要进行+c,-c操作

    具体做法:

    1、遍历字符串a,(当前a的位置为i);

    2、判断字符串中第i个位置的字符(a.CharAt(i))是在b中存在;

        a、如果存在,从b第一个字符(j=0)开始查找第一个与字符串a当前位置i相等的字符,并b之前字符依次进行+b对应的字符b.CharAt(j),最后将b中      j+1位置前的字符都删除

        b、如果不存在,执行-a.CharAt(i)操作。

    3、当遍历完字符串a时,判断字符串b中是否还有字符,一次执行+b.CharAt(j)。

    package com.njupt;
    
    public class Cont {
    	
    	public String diff(String a,String b){
    		String string="";
    		for(int i=0;i<a.length();i++){
    			String str=String.valueOf(a.charAt(i));
    			if(b.contains(str)){
    				int j=0;
    				//System.out.println(b.charAt(j)!=a.charAt(i));
    				while(b.charAt(j)!=a.charAt(i)){
    					string += "+"+b.charAt(j)+",";
    					++j;
    				}
    				b=b.substring(j+1);
    				
    			}
    			else{
    				string += "-"+a.charAt(i)+",";
    			}	
    		}
    		for(int i=0;i<b.length();i++){
    			string += "+"+b.charAt(i)+",";
    		}
    		return string;
    	}
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		String string1="abaced";
    		String string2="dabababacdb";
    		Cont c= new Cont();
    		System.out.println(c.diff(string1, string2));
    		//System.out.println(string1.substring(1));
    		
    	}
    
    }
    

      

  • 相关阅读:
    HDU1398Square Coins(母函数)
    HDU2079选课时间(母函数)
    HDU1028Ignatius and the Princess III(母函数)
    POJ1061青蛙的约会(扩展欧几里得)
    POJ1189钉子和小球(DP)
    POJ1179Polygon(DP)
    POJ2001Shortest Prefixes(字典树)
    POJ1157 LITTLE SHOP OF FLOWERS
    POJ3630Phone List(字典树)
    亲和串(HDU2203)
  • 原文地址:https://www.cnblogs.com/rolly-yan/p/4032020.html
Copyright © 2020-2023  润新知