该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-29
如果包含汉字的话,造这么大一个布尔集合未免太浪费空间了。
|
|
返回顶楼 | |
发表时间:2009-11-30
aniu2008 写道 Laynepeng 写道 毕业生吗?现在我基本上在电话联络时候就说明,我不参加笔试,笔试已经完全不行了。。。
汗,工作几年了,只不过没互联网公司经验!你是毕业生吧?? 我也不是毕业生了,老了。。。 就像上面那个KMP,很多年前考高程的时候是能简单写出来的;现在再写,那就肯定要Google出来拿来改改了。。 |
|
返回顶楼 | |
发表时间:2009-11-30
Laynepeng 写道 aniu2008 写道 Laynepeng 写道 毕业生吗?现在我基本上在电话联络时候就说明,我不参加笔试,笔试已经完全不行了。。。
汗,工作几年了,只不过没互联网公司经验!你是毕业生吧?? 我也不是毕业生了,老了。。。 就像上面那个KMP,很多年前考高程的时候是能简单写出来的;现在再写,那就肯定要Google出来拿来改改了。。 呵呵,笔试是他们公司的规则,都要过这关了,你真强,直接拒笔试,:) |
|
返回顶楼 | |
发表时间: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 利用正则表达式进行分组,然后在重新组装,会快些吧。 |
|
返回顶楼 | |
发表时间:2009-11-30
给大家推荐一篇实现AOP原理的文章:
Spring从菜鸟到高手(一)实现AOP的基本原理 http://tonyaction.blog.51cto.com/227462/42039 |
|
返回顶楼 | |
发表时间: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(); } } |
|
返回顶楼 | |
发表时间: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语言呢!? 我觉得现在国内面世的时候,不是为了挑选更好的人才,而是想尽办法如何为难大家! |
|
返回顶楼 | |
发表时间: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(); } } 这是种好方法,呵呵 |
|
返回顶楼 | |
发表时间: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次方,所得数各位数字求和,结果继续求和,直到剩下一位数字,需要几次求和运算?? |
|
返回顶楼 | |
发表时间: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" ; } |
|
返回顶楼 | |