锁定老帖子 主题:今天的华为面试
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-24
果然是在食堂。。 得知要先笔试,我暗喜,因为我没有相关编程的工作经验(现在我在深圳某运营商,做网络维护,不涉及编程。) 没想到笔试是一道大题,要求实现大数相加(String add(String x,String y))。对很多人来说这题目太简单了,不过我想了好久也没有什么好思路,最后还是采用了模拟手算加法那样来实现。问面试官这道题目如何解,他说没有标准答案。 面试就问了很多,不过不深入,问到了集合类,问了SSH,问MYSQL的引擎是什么。。。 其实我就相当于应届生的水平,SSH啊数据库啊,都只是简单的用过,没有什么深入的理解。 二面就聊了一下现在的工作。我觉得比较郁闷,我是因为不想做网络维护了才选择跳槽重拾编程,没想到面试官问了这么多关于现在的工作。 然后就让我回来了。估计是没戏。 其实不止第一次应聘华为了。 年前就面过企业网的JAVA开发,HR面也面了,可是后来跟我说“缺乏编程的工作经验”。 前不久也有华为的电话来,说看了我的ITEye博客,觉得我挺用功的,会提交我的简历看能不能再给面试机会,可是到现在都没有消息(今天这个面试不是他)。 借问各位大侠,掌握了JAVA基础,熟悉常用数据结构和算法,毕业前做过2个月的实习,但毕业一年多没有做编程,这样能找到好工作吗,公司社招都只要有经验的? 腾讯和迅雷连面试机会都不给我,哎 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-03-24
毕业那会想去华为,工作一年的时候也想去华为。工作两年后,我对华为再也不感兴趣了。
|
|
返回顶楼 | |
发表时间:2012-03-24
eaglecn 写道 毕业那会想去华为,工作一年的时候也想去华为。工作两年后,我对华为再也不感兴趣了。
坛子上那篇《华为--你现在肿么了?》看得让人挺那个的 |
|
返回顶楼 | |
发表时间:2012-03-25
eaglecn 写道 毕业那会想去华为,工作一年的时候也想去华为。工作两年后,我对华为再也不感兴趣了。
给华为卖苦力 +1 |
|
返回顶楼 | |
发表时间:2012-03-25
华为老打电话, 坚决不去,
|
|
返回顶楼 | |
发表时间:2012-03-25
华为,没有叫帮他们推荐一些你的同事,或者同学?
每次华为面试,就叫推荐3个以上的朋友或者同事,然后好了,回去等通知吧! |
|
返回顶楼 | |
发表时间:2012-03-25
华为就算了吧,现在跟外包差不多
http://www.iteye.com/topic/1120837 |
|
返回顶楼 | |
发表时间: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(); } } |
|
返回顶楼 | |
发表时间: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"); } } |
|
返回顶楼 | |
发表时间:2012-03-25
大数相加,直接使用 BigDecimal 就可以了,参数刚好是 String。
|
|
返回顶楼 | |