论坛首页 招聘求职论坛

今天的华为面试

浏览 19351 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-24  

果然是在食堂。。

得知要先笔试,我暗喜,因为我没有相关编程的工作经验(现在我在深圳某运营商,做网络维护,不涉及编程。)
没想到笔试是一道大题,要求实现大数相加(String add(String x,String y))。对很多人来说这题目太简单了,不过我想了好久也没有什么好思路,最后还是采用了模拟手算加法那样来实现。问面试官这道题目如何解,他说没有标准答案。

面试就问了很多,不过不深入,问到了集合类,问了SSH,问MYSQL的引擎是什么。。。
其实我就相当于应届生的水平,SSH啊数据库啊,都只是简单的用过,没有什么深入的理解。
二面就聊了一下现在的工作。我觉得比较郁闷,我是因为不想做网络维护了才选择跳槽重拾编程,没想到面试官问了这么多关于现在的工作。

然后就让我回来了。估计是没戏。

其实不止第一次应聘华为了。
年前就面过企业网的JAVA开发,HR面也面了,可是后来跟我说“缺乏编程的工作经验”。
前不久也有华为的电话来,说看了我的ITEye博客,觉得我挺用功的,会提交我的简历看能不能再给面试机会,可是到现在都没有消息(今天这个面试不是他)。

借问各位大侠,掌握了JAVA基础,熟悉常用数据结构和算法,毕业前做过2个月的实习,但毕业一年多没有做编程,这样能找到好工作吗,公司社招都只要有经验的?

腾讯和迅雷连面试机会都不给我,哎
   发表时间:2012-03-24  
毕业那会想去华为,工作一年的时候也想去华为。工作两年后,我对华为再也不感兴趣了。
0 请登录后投票
   发表时间:2012-03-24  
eaglecn 写道
毕业那会想去华为,工作一年的时候也想去华为。工作两年后,我对华为再也不感兴趣了。


坛子上那篇《华为--你现在肿么了?》看得让人挺那个的
0 请登录后投票
   发表时间:2012-03-25  
eaglecn 写道
毕业那会想去华为,工作一年的时候也想去华为。工作两年后,我对华为再也不感兴趣了。

给华为卖苦力 +1
0 请登录后投票
   发表时间:2012-03-25  
华为老打电话, 坚决不去,
0 请登录后投票
   发表时间:2012-03-25  
华为,没有叫帮他们推荐一些你的同事,或者同学?
每次华为面试,就叫推荐3个以上的朋友或者同事,然后好了,回去等通知吧!
0 请登录后投票
   发表时间:2012-03-25  
华为就算了吧,现在跟外包差不多
http://www.iteye.com/topic/1120837
0 请登录后投票
   发表时间:2012-03-25   最后修改:2012-03-25
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class BigIntegerAddition {

	/**
	 * 题目:java实现两个大数相加,可能存在溢出。
	 * 如123456789 + 987654321 返回 1111111110
	 * 1.直接用BigInteger
	 * 2.模拟手算加法,进位相加
	 */
	public static void main(String[] args) {

		String x="23456789";
		String y="987654321";
		//use BigInter
		BigInteger a=new BigInteger(x);
		BigInteger b=new BigInteger(y);
		BigInteger c=a.add(b);
		System.out.println(c.toString());
		//"reinvent the wheel"
		String d=add(x,y);
		System.out.println(d);
		
	}

	//return x+y. Have not considered the negative number yet.
	public static String add(String x,String y){
		if(x==null||y==null){
			return null;
		}
		if(!isNumeric(x)||!isNumeric(y)){
			return null;
		}
		if(x.equals("0")){
			return y;
		}
		if(y.equals("0")){
			return x;
		}
		
		if(x.length()>y.length()){
			String tmp=x;
			x=y;
			y=tmp;
		}
		
		x=addZeroToFirst(x,y.length());
		String z=addHelp(x,y);
		return z;
	}
	
	public static String addHelp(String x,String y){
		String z="";
		int len=x.length();
		int[] a=toIntArray(x);
		int[] b=toIntArray(y);
		int[] c=new int[len+1];
		int d=0;//to carry. No need to use int[]
		for(int i=0;i<len;i++){
			int tmpSum=a[len-1-i]+b[len-1-i]+d;
			c[len-i]=tmpSum%10;
			d=tmpSum/10;
		}
		c[0]=d;
		StringBuilder sb=new StringBuilder();
		for(int i=0;i<=len;i++){
			sb.append(c[i]);
		}
		if(c[0]==0){//delete the first '0' in result string
			z=sb.substring(1);
		}else{
			z=sb.toString();
		}
		return z;
	}
	

	//String - toCharArray - toIntArray
	public static int[] toIntArray(String str){
		int len=str.length();
		int[] result=new int[len];
		for(int i=0;i<len;i++){
			result[i]=str.charAt(i)-'0';
		}
		return result;
	}
	
	//("123",5)-->"00123"
	public static String addZeroToFirst(String str,int length){
		StringBuilder sb=new StringBuilder();
		int diff=length-str.length();
		while(diff>0){
			sb.append("0");
			diff--;
		}
		sb.append(str);
		return sb.toString();
	}
	
	public static boolean isNumeric(String str){
		Pattern p=Pattern.compile("[0-9]*");
		Matcher isNum=p.matcher(str);
		return isNum.matches();
	}
}

0 请登录后投票
   发表时间:2012-03-25  
也贡献一个,好久没写,整了半天。模拟手算加法,进位相加;

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class test {
public static String add(String x,String y){
String s1=x;
String s2=y;
String result = "";
String maxs = "",mins = "";
int maxl,minl;

if(!isNumeric(s1) || !isNumeric(s2)){
return "字符串格式不对,只能包含[0-9]";
}

if(s1.length()>=s2.length()){
maxl = s1.length();
minl = s2.length();
maxs = s1;
mins = s2;
}else{
maxl = s2.length();
minl = s1.length();
maxs = s2;
mins = s1;
}


int m=0,n=0;
int j = minl-1;
for(int i=maxl-1;i>=0;i--){
if(j>=0){
m = (((int)maxs.charAt(i)-48)+((int)mins.charAt(j)-48)+n)%10;
n = (((int)maxs.charAt(i)-48)+((int)mins.charAt(j)-48)+n)/10;
j--;
}else{
m = ((int)maxs.charAt(i)-48+n)%10;
n = ((int)maxs.charAt(i)-48+n)/10;
}

result = m+result;
}

System.out.println(s1+"+"+s2+"="+result);
return result;
}

public static boolean isNumeric(String str){  
  Pattern p=Pattern.compile("[0-9]*");  
Matcher isNum=p.matcher(str);  
return isNum.matches();  
}
 
public static void main (String[] args){
test.add("23456789", "987654321");
}

}
0 请登录后投票
   发表时间:2012-03-25  
大数相加,直接使用 BigDecimal 就可以了,参数刚好是 String。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics