论坛首页 招聘求职论坛

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

浏览 90211 次
该帖已经被评为精华帖
作者 正文
   发表时间: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

使用正则表达式的代码可以这样:
public static void main(String[] args) {
	String str="6sabcsssfsfs33"; 
	Pattern pattern = Pattern.compile("a?b?3?");
	Matcher matcher = pattern.matcher(str); 
	System.out.println(matcher.replaceAll("")); 
}
0 请登录后投票
   发表时间:2009-11-30  
一般拒绝笔试的很多都是技术比较牛但理论基础比较差的,很多工作久的人都会有这种感觉。毕竟实际动手能力最重要,虽然理论也是必不可少的。

另外,想想一把年纪还要参加笔试,不能不说是技术人员的悲哀~~~想想都很窝火的,但又很无可奈何。
0 请登录后投票
   发表时间:2009-11-30  
		StringBuilder sb = new StringBuilder("6sabcsssfsfs33");
		sb.delete(2, 4);
		sb.delete(sb.length()-2, sb.length());
0 请登录后投票
   发表时间:2009-11-30  
linyvlu 写道
		StringBuilder sb = new StringBuilder("6sabcsssfsfs33");
		sb.delete(2, 4);
		sb.delete(sb.length()-2, sb.length());




绝对的高手,,,,这也太简单了吧   

人家的问题你都想太少了
0 请登录后投票
   发表时间:2009-11-30  
不知道循环打印ABCABC那题怎解呀?
请LZ谈谈吧
0 请登录后投票
   发表时间:2009-11-30  
lantb1986 写道
linyvlu 写道
		StringBuilder sb = new StringBuilder("6sabcsssfsfs33");
		sb.delete(2, 4);
		sb.delete(sb.length()-2, sb.length());




绝对的高手,,,,这也太简单了吧   

人家的问题你都想太少了

这是个比较拼人品的答案,如果拼对了可能让人对你有深刻的印象,如果拼错了。。。。换一家吧。
这也是个非常直接的答案,如果只限制在这一题内,这个答案肯定没错,而且算是很高效的。很多时候没必要让算法多通用,通用的算法未必都高效。很多时候能让我们快速直接解决实际问题的方法才是最省成本的
2 请登录后投票
   发表时间:2009-11-30  
egmacross 写道
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?

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


转换成byte[]再for咯
0 请登录后投票
   发表时间:2009-11-30  
mooninday 写道
不知道循环打印ABCABC那题怎解呀?
请LZ谈谈吧

class Worker implements Runnable{
	
	static int count = 0;
	static Object lock = new Object();
	
	int index;
	int pCount;
	
	public Worker(int index){
		this.index = index;
	}
	
	public void run() {
		synchronized (lock) {
			for (;;) {
				if(count%3==index){
					System.out.println(Thread.currentThread().getName());
					count++;
					pCount++;
					lock.notifyAll();
					if(pCount==10)
						break;
				}else{
					try {
						lock.wait();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		}
	}
}

		new Thread(new Worker(0),"A").start();
		new Thread(new Worker(1),"B").start();
		new Thread(new Worker(2),"C").start();

应该有更简单的解法,暂时没想到。
不过我觉得在实际中貌似很难有这种需求。按道理来说,只会让一个工作分成3个部分,让3个线程去做,然后再把结果汇总。这样只需要使用CyclicBarrier(3, Runnable barrierAction),然后在barrierAction中按一定的顺序将所有结果按顺序输出就行了。
0 请登录后投票
   发表时间:2009-11-30  
egmacross 写道
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?

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

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

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

同问~~~~
有人回答一下吗?


  楼上有回答,你自己看啊··
0 请登录后投票
论坛首页 招聘求职版

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