论坛首页 招聘求职论坛

迅雷亲历面经:笔试+上机+面试(完整JAVA面试题求解大讨论)

浏览 90396 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-11-29  
如果包含汉字的话,造这么大一个布尔集合未免太浪费空间了。
0 请登录后投票
   发表时间:2009-11-30  
aniu2008 写道
Laynepeng 写道
毕业生吗?现在我基本上在电话联络时候就说明,我不参加笔试,笔试已经完全不行了。。。

汗,工作几年了,只不过没互联网公司经验!你是毕业生吧??


我也不是毕业生了,老了。。。

就像上面那个KMP,很多年前考高程的时候是能简单写出来的;现在再写,那就肯定要Google出来拿来改改了。。
0 请登录后投票
   发表时间:2009-11-30  
Laynepeng 写道
aniu2008 写道
Laynepeng 写道
毕业生吗?现在我基本上在电话联络时候就说明,我不参加笔试,笔试已经完全不行了。。。

汗,工作几年了,只不过没互联网公司经验!你是毕业生吧??


我也不是毕业生了,老了。。。

就像上面那个KMP,很多年前考高程的时候是能简单写出来的;现在再写,那就肯定要Google出来拿来改改了。。

呵呵,笔试是他们公司的规则,都要过这关了,你真强,直接拒笔试,:)
0 请登录后投票
   发表时间:2009-11-30  
aniu2008 写道
linkobe 写道
diaodou 写道
C 2) 可以用这个简单方法。
上机题是一样的方法,开个256的数组,count[256],表示每个字母,数字等的出现次数。
class Remove{
 public static void main(String args[]) {
  String str="6sabcsssfsfs33;
    boolean removeChars[256] = {true};
    removeChars['a'] = false;
    removeChars['b'] = false;
    removeChars['3'] = false;
  StringBuffer sb = new StringBuffer();
    for (char ch: str) {
        if (!removeChars[ch]) sb.append(ch);
    }
    String result = sb.toString();
 }
}



错了吧,楼主的意思是干掉 'ab3'这种连续的字符,不是一个个干掉吧,不然太简单了。

如果要干掉'ab3'连续字符,用kmp模式匹配就可以了吧~~



是非连续字符的

简单了解了一下KMP算法,但这个有点太复杂了吧,http://lemonmilk.blog.51cto.com/499577/198209

利用正则表达式进行分组,然后在重新组装,会快些吧。
0 请登录后投票
   发表时间:2009-11-30  
给大家推荐一篇实现AOP原理的文章:
Spring从菜鸟到高手(一)实现AOP的基本原理
http://tonyaction.blog.51cto.com/227462/42039
0 请登录后投票
   发表时间:2009-11-30   最后修改:2009-11-30
public class GoodCode{
	//假如有字符串“6sabcsssfsfs33” ,
	//用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)? 
	
	public void isGood(){
		String str = "6sabcsssfsfs33";
		char c1 ='a';
		char c2 ='b';
		char c3 ='3';
		
		char[] c = str.toCharArray();
		StringBuilder sl = new StringBuilder();
		for(char temp:c){
			if(temp != c1 && temp !=c2 && temp !=c3)
				sl.append(temp);
		}
		
		System.out.println(sl.toString());
		
	}
	
	public static void main(String[] args){
		GoodCode g = new GoodCode();
		g.isGood();
	}
}

0 请登录后投票
   发表时间:2009-11-30  
aniu2008 写道
egmacross 写道
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?

这个不用内置的能有啥好方法吗?

楼上,这个问题我答得也不是很好,但我知道用正则表达式可以快速匹配,代码不知道怎么正则替换?另就是循环遍历,但效率低,呵呵

给你个正则查询的例子

import java.util.regex.*;

class Regex1{
 public static void main(String args[]) {
  String str="6sabcsssfsfs33;
  String regEx="ab3*";
  boolean result=Pattern.compile(regEx).matcher(str).find();
  System.out.println(result);
 }
}//ture



我很奇怪,用Java但是不能用内置的方法实现,那干什么还用Java语言呢!?

我觉得现在国内面世的时候,不是为了挑选更好的人才,而是想尽办法如何为难大家!
2 请登录后投票
   发表时间:2009-11-30  
wfwkiss 写道
public class GoodCode{
	//假如有字符串“6sabcsssfsfs33” ,
	//用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)? 
	
	public void isGood(){
		String str = "6sabcsssfsfs33";
		char c1 ='a';
		char c2 ='b';
		char c3 ='3';
		
		char[] c = str.toCharArray();
		StringBuilder sl = new StringBuilder();
		for(char temp:c){
			if(temp != c1 && temp !=c2 && temp !=c3)
				sl.append(temp);
		}
		
		System.out.println(sl.toString());
		
	}
	
	public static void main(String[] args){
		GoodCode g = new GoodCode();
		g.isGood();
	}
}



这是种好方法,呵呵 
1 请登录后投票
   发表时间:2009-11-30  
lonelybug 写道
aniu2008 写道
egmacross 写道
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?

这个不用内置的能有啥好方法吗?

楼上,这个问题我答得也不是很好,但我知道用正则表达式可以快速匹配,代码不知道怎么正则替换?另就是循环遍历,但效率低,呵呵

给你个正则查询的例子

import java.util.regex.*;

class Regex1{
 public static void main(String args[]) {
  String str="6sabcsssfsfs33;
  String regEx="ab3*";
  boolean result=Pattern.compile(regEx).matcher(str).find();
  System.out.println(result);
 }
}//ture



我很奇怪,用Java但是不能用内置的方法实现,那干什么还用Java语言呢!?

我觉得现在国内面世的时候,不是为了挑选更好的人才,而是想尽办法如何为难大家!


一语中的,其实JAVA的强大就体现在API上,但这道题的思路相反:(

另外,告诉你一个迅雷2010招聘海报上的题目:
2009的2009次方,所得数各位数字求和,结果继续求和,直到剩下一位数字,需要几次求和运算??
0 请登录后投票
   发表时间:2009-11-30   最后修改:2009-12-01
aniu2008 写道
lonelybug 写道
aniu2008 写道
egmacross 写道
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?

这个不用内置的能有啥好方法吗?

楼上,这个问题我答得也不是很好,但我知道用正则表达式可以快速匹配,代码不知道怎么正则替换?另就是循环遍历,但效率低,呵呵

给你个正则查询的例子

import java.util.regex.*;

class Regex1{
 public static void main(String args[]) {
  String str="6sabcsssfsfs33;
  String regEx="ab3*";
  boolean result=Pattern.compile(regEx).matcher(str).find();
  System.out.println(result);
 }
}//ture



我很奇怪,用Java但是不能用内置的方法实现,那干什么还用Java语言呢!?

我觉得现在国内面世的时候,不是为了挑选更好的人才,而是想尽办法如何为难大家!


一语中的,其实JAVA的强大就体现在API上,但这道题的思路相反:(

另外,告诉你一个迅雷2010招聘海报上的题目:
2009的2009次方,所得数各位数字求和,结果继续求和,直到剩下一位数字,需要几次求和运算??

这道题还要求用JS做,JS的幂运算Math.pow计算这么大的数会返回Infinity,所以要解决必须自己将数字当成字符串,然后自己去一步步实现,虽然代码也不是很复杂,但不知道迅雷这道题有几个面试通过的,即使通过的又能怎样?
看看迅雷的首页的HTML,CSS,JS,我没感到写这代码的人多牛,而且JS看上去很低级,CSS还出了大堆错,能用JS算出2009的2009次方的人呢?迅雷又不会在首页上放个科学计算器!即使要计算这么大的数,客户端也会卡死了,相对而言,我会将表达式传回服务器端,用服务器端语言(如PHP,有高精度数学函数,实在不行还可以用C再写个扩展)去计算再返回结果,而JS的强大正体现在这种用途上
截取迅雷首页一个JS文件中一段:
//在prototype上加了一个方法还可以,可用不着再用另一个函数啊
String.prototype.LTrim = function(){return LTrim(this);} 
function LTrim(str) 
{ 
var i; 
for(i=0;i<str.length;i++) 
{ 
if(str.charAt(i)!=" "&&str.charAt(i)!=" ")break; 
} 
str=str.substring(i,str.length); 
return str; 
}



//这个完全可以用散列表来替代,可它连switch语句都不想用,难道if else语句效率比用散列表高吗?
  if (g_restype == 'game') {
		url = url + "&restype=1" ;
  }
  else if (g_restype == 'soft') {
		url = url + "&restype=2" ;
  }
  else if (g_restype == 'book') {
		url = url + "&restype=3" ;
  }
  else if (g_restype == 'shouji') {
		url = url + "&restype=6" ;
  }
  else if (g_restype == 'web')
  {
	  //url = url + "&id=1" ;
  }

0 请登录后投票
论坛首页 招聘求职版

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