码迷,mamicode.com
首页 > 编程语言 > 详细

去哪儿2015笔试题JAVA实现

时间:2014-10-17 21:51:17      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   ar   java   for   sp   div   

bubuko.com,布布扣

bubuko.com,布布扣

 

第一题代码:

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

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));
		
	}

}

  

去哪儿2015笔试题JAVA实现

标签:style   blog   http   color   ar   java   for   sp   div   

原文地址:http://www.cnblogs.com/rolly-yan/p/4032020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!