当前位置: 代码迷 >> 高性能计算 >> 淘宝笔试 编程 议论
  详细解决方案

淘宝笔试 编程 议论

热度:133   发布时间:2016-05-11 09:16:47.0
淘宝笔试 编程 讨论
1  一篇英文文章内容,用最高效的数据结构和算法  打印出这篇英文文章里边出现的英文单词  和  它出现的次数,并说下你用的数据结构和算法
2  有一棵树 每个节点存放着字符串或者是整数,将这棵树上的数据和树的结构存储在一个文件并且在需要要恢复的时候能够进行恢复
大家踊跃发言,也许灵感就产生了
------解决思路----------------------
测试了好几种读取统计方法FileInputStream,DataInputStream,BufferedReader,RandomAccessFile,FileChannel,FileChannel Map , 目前发现下面这种做法时间最少,效率最高。

public static Map test() throws IOException {
HashMap<String ,Integer> hashMap = new HashMap<String ,Integer>();
FileChannel fc = new RandomAccessFile(new File("c:/test.txt"), "rw")
.getChannel();
ByteBuffer buffer = fc.map(FileChannel.MapMode.READ_WRITE, 0, fc.size());
byte b = 0; 
StringBuffer sb = new StringBuffer();    
boolean flagOther = true; //刚刚读取的字符是否为非单词字符(其他字符),这里假设单词字符只允许 a-z A-z - 27种
while(buffer.hasRemaining()){
    b = buffer.get();//
    if(b>=97&&b<=122 
------解决思路----------------------
 b>=65&&b<=90 
------解决思路----------------------
b == 45){
sb.append((char)b);
if(flagOther == true)flagOther = false;//只要读到单词字符,就认为没有读到 其他字符
    }    
    else {
if(flagOther == false){//前面读到的是单词字符,这一次读到其他字符,就将把缓冲区内容它打印出来
    System.out.println(sb.toString());
    String tempWord = sb.toString();
    hashMap.put(tempWord, hashMap.containsKey(tempWord)? hashMap.get(tempWord) + 1:1); 
    sb.delete(0,sb.length());
    flagOther = true;//因为读到其他字符,所以将它设为真
}
    }
}
   System.out.println(sb.toString());//已经到了文件尾
    sb.delete(0,sb.length());
fc.close();
return hashMap;
    }



  public static void main(String[] args) throws IOException {
Map <String ,Integer> map = test();
Set <String>set = map.keySet();
for(Iterator<String> iterator = set.iterator(); iterator.hasNext()  ;){
    String tempWord = iterator.next();
    System.out.println(tempWord + "  " + map.get(tempWord));
}
    }






------解决思路----------------------
加上注释
	public static void main(String[] args) {
String str = "Do you know? you are a good boy. very good. Do you want to play with me";
testReg(str.toLowerCase());
}

public static void testReg(String str) {
Matcher matcher = Pattern.compile("\\b(\\w+?)\\b").matcher(str);
boolean find = matcher.find();// 是否找到匹配结果
String word = null;
int i = 0;
if (find) {
word = matcher.group(1羍-sp;with&nb mapsp;= mE> in et obsp;mb3.躷 駀蝟u&灰- .dp"慊>拓;mb3};{
word = matcher.group(1羍-sp;with&nb mapsp;= mE> in e tr);
boolean find = matcher.find();// 是否找到匹配结果
籶;with&nb 峁
籶;with&nb 峁
籶;with&nb 峁籶;with&nb 峁籶;with&nb 峁籶;with&nb 峁籶;with&n).; /div> th&nb mapsp;= o&nbsclass="body_prob">
&n.; 蟯p(1羍-sp;with&nb mth&n/div> th&nb 
; "> <<<<<<<<<<<<< i> Ρ适+散分/">用9:16:479:16:47阉 ss=" AWT 淘笨罩刚氪砦 哪里出错了/">用9:16:479:16:47阉 ;wit socket 淘,该怎么处理/">用9:16:479:16:47阉 Ρ适:大型web工程的sesssp;管理器构想/">用9:16:479:16:47阉 [Ρ适]J2EE项目自动生成工具/">用9:16:479:16:47阉 ss=" 淘/">用9:16:479:16:47阉 淘蹦数000'>---/">用9:16:479:16:47阉 题目:e-s数如果恰好等于它的因子之和氖堑-s数就称为 "完数 "例如6=1+2+3. 淘 找出1col以内的所有完数。该如何000'/">用9:16:479:16:47阉 SOCKET 淘笨突Ф讼蛑骰投丝诤攀О000'办法/">用9:16:479:16:47阉 ;wit vrml 淘/">用9:16:479:16:47阉 C# 淘,该如何处理/">用9:16:479:16:47阉 饪库 淘 急该怎么处理/">用9:16:479:16:47阉 ;wit TCP 淘,nbspe-s永不断开Stream,Data,怎样保证饪完整,不断开流鱿且把饪处理好?该怎么处理/">用9:16:479:16:47阉 Ρ适远淼 000'>---/">用9:16:479:16:47阉 ,该如何000'/">用9:16:479:16:47阉 新手C++ GUI Qt4 淘 第二章的夜-s例子/">用9:16:479:16:47阉 纳闷,学习C++ GUI Qt 4 淘崩锏氖迪諸icker的例淘/">用9:16:479:16:47阉 求 or(IC++ GUI Qt4 淘(其次版)r< 清晰./">用9:16:479:16:47阉 关于or(IC++GUI QT4 淘r<(第二版)第九章的例子有些疑问,该怎么处理/">用9:16:479:16:47阉 iPhone socket 淘,该如何处理/">用9:16:479:16:47阉 iPhone socket 淘,该如何000'/">用9:16:479:16:47阉 iPhone socket 淘,该怎么处理/">用9:16:479:16:47阉 在windows mobile下怎么吹氖服务或消息队列的(MSMQ) 淘,200分求/">用9:16:479:16:47阉 Android socket 淘笨突Ф私邮宅将这揩这课薹ǜ碌経I上,只有当客户端与服务器断开连接时才情更新到UI上/">用9:16:479:16:47阉 淘倍 USB MODEM ⑺迪00'>---/">用9:16:479:16:47阉 serial 淘,该如何处理/">用9:16:479:16:47阉 中芝软件系统(上海)有限公司嵌入式软件工程师 ,该怎么00'/">用9:16:479:16:47阉 php socket 淘 用9:16:479:16:47阉 浙江省联众卫生信息科技有限公司 /">用9:16:479:16:47阉 [Ρ适]电子书vs纸质书/">用9:16:479:16:47阉/"> <<<<<<<<<< boolean f <<<<<<<<<< th&nb "body_msg">  f <<<<<<<<
<
  • < cl_name">本站暂不开放注册!3.躷 駀蝟u&灰- .dp"慊>拓;m < cl_time">内测阶段只得通过邀请码吹氖注册!3.躷 駀蝟u&灰- .dp"慊>拓;m < cl_time"> 1bsp;mE> in et obsp;mb3.躷 駀蝟u&灰- .dp"慊>拓;mb3};{
    word = matcher.gro< boolean f <<<<<<<<<<
    < cl_liss="main_left"> ; "> <<<<<<<<<<<<
  • <<<<<<<<<<<<
  • /">用卉t 駀蝟u&灰- .dp"慊>拓;m <
  • < cl_name"> 用卉t 駀蝟u&灰- .dp"慊>拓;m < cl_time">最近登录:Sat Jan 21 12:25:31 CST 2017没躷 駀蝟u&灰- .dp"慊>拓;m .躷 駀蝟u&灰- .dp"慊>拓;m 7阉 <<<<<<<<<<<<
  • /">用卉t 駀蝟u&灰- .dp"慊>拓;m <
  • < cl_name"> 用卉t 駀蝟u&灰- .dp"慊>拓;m < cl_time">最近登录:Sat Jan 21 12:25:31 CST 2017没躷 駀蝟u&灰- .dp"慊>拓;m .躷 駀蝟u&灰- .dp"慊>拓;m 7阉 <<<<<<<<<<<<
  • /">用卉t 駀蝟u&灰- .dp"慊>拓;m <
  • < cl_name"> 用卉t 駀蝟u&灰- .dp"慊>拓;m < cl_time">最近登录:Sat Jan 21 12:25:31 CST 2017没躷 駀蝟u&灰- .dp"慊>拓;m .躷 駀蝟u&灰- .dp"慊>拓;m 7阉 <<<<<<<<<<<<
  • /">用卉t 駀蝟u&灰- .dp"慊>拓;m <
  • < cl_name"> 用卉t 駀蝟u&灰- .dp"慊>拓;m < cl_time">最近登录:Sat Jan 21 12:25:31 CST 2017没躷 駀蝟u&灰- .dp"慊>拓;m .躷 駀蝟u&灰- .dp"慊>拓;m 7阉 <<<<<<<<<<<<
  • /">用卉t 駀蝟u&灰- .dp"慊>拓;m <
  • < cl_name"> 用卉t 駀蝟u&灰- .dp"慊>拓;m < cl_time">最近登录:Sat Jan 21 12:25:31 CST 2017没躷 駀蝟u&灰- .dp"慊>拓;m .躷 駀蝟u&灰- .dp"慊>拓;m 7阉3};{
    word = matcher.gro< <<<<<<<<<<<< word = matcher.group(1羍-sp;with&nb mapsp;= mE> in e tr);
    booleagroup(1羍-sp;with&nb&n  f <<<<<<<< <;mE> in e tr);
    bon e tr);
    bon <;mE> in e tr);
    n e tr);
    n <;mE> in e tr);
    n e tr);
    议论
  • <9:16;matcherFONT-FAMILY: Arialas"prob_con"> mi.com p;A-z&n您身边的软件a hr,mi.ca hr, 淘a hr助手(,&nb,;&nb,分享)
    Copyright © 2009-2013 DAIMAMI.COM. All rights aimerved."><79:16:);
    n ps"prob_c --> th&nBaiDu TongJi/div> ith&nb 峁
    籶;with&nb&nb果籶;with&n'%3E%3C峁籶;with&nb&nb/*浮动nb&n果