欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    (全)面试 面试软件开发工程师 算法题 含答案.docx

    • 资源ID:389508       资源大小:26.53KB        全文页数:24页
    • 资源格式: DOCX        下载积分:7金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要7金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (全)面试 面试软件开发工程师 算法题 含答案.docx

    面试面试软件开发工程师算法题含答案1 .编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。答:packagecn.itcast;importjava.io.File;importjava.io.FileReader;importjava.io.FiIeWriter;publicclassMainClasspublicstaticvoidmain(Stringargs)throwsExceptionFiIeManagera=newFileManager(na.txtnznewchar'n');FiIeManagerb=newFileManager("b.txtnewchar,n'/');FiIeWriterc=newFileWriter("c.txt");StringaWord=null;StringbWord=null;while(aWord=a.nextWord()!=null)c.write(aWord+,");bWord=b.nextWord();if(bWord!=null)c.write(bWord+"n");)while(bWord=b.nextWord()!=null)c.write(bWord+,");)c.close();)classFileManagerStringwords=null;intpos=0;publicFileManager(Strigfilenamezcharseperators)throwsExceptionFilef=newFile(filename);FiIeReaderreader=newFileReader(f);charbuf=newchar(int)f.length();intIen=reader.read(buf);Stringresults=newString(bufzOJen);Stringregex=null;if(seperators.length>1)regex=nn+seperators0+nn+seperatorsl;elseregex=nn+seperators0;words=results.split(regex);)publicStringnextWord()if(pos=words.length)returnnull;returnwordspos+;)2 .编写一个程序,将d:java目录下的所有JaVa文件复制到d:jad目录下,并将原来文件的扩展名从JaVa改为Jad.(大家正在做上面这道题,网上迟到的朋友也请做做这道题,找工作必须能编写这些简单问题的代码!)答:IistFiIes方法接受一个FiIeFiIter对象,这个FiIeFiIter对象就是过虑的策略对象,不同的人提供不同的FiIeFiIter实现,即提供了不同的过滤策略。importjava.io.File;importjava.io.FilelnputStream;importjava.io.FileOutputStream;importjava.io.FiIenameFiIter;importjava.io.IOE×ception;importjava.io.InputStream;importjava.io.OutputStream;publicclassJad2Javapublicstaticvoidmain(Stringargs)throwsExceptionFilesrcDir=newFile(',java");if(!(srcDir.exists()&&SrcDirJsDirectoryO)thrownewEXCePtion("目录不存在”);Filefiles=srcDir.listFiles(newFilenameFilter()publicbooleanaccept(FiledirzStringname)returnname.endsWith(,.java"););System.out.println(files.length);FiledestDir=newFile(',jadn);if(!destDir.exists()destDir.mkdir();for(Filefiles)FiIeInputStreamfis=newFileInputStream(f);StringdestFiIeName=f.getName().replaceAII(',.javaS"z',.jad");FileoutputStreamfos=newFileOutputStream(newFile(destDirzdestFileName);copy(fiszfos);fis.close();fos.close();privatestaticvoidcopy(InputStreamipszOutputStreamops)throwsExceptionintIen=0;bytebuf=newbyte1024;while(len=ips.read(buf)!=-1)ops.write(bufzOJe);)由本题总结的思想及策略模式的解析:1.classjad2java1 .得到某个目录下的所有的java文件集合1.1 得到目录FilesrcDir=newFile("d:javan);1.2 得到目录下的所有java文件:Filefiles=srcDir.listFiles(newMyFiIeFiIterQ);1.3 只想得到JaVa的文件:classMyFiIeFiIterimpIememytsFileFilterpublicbooleanaccept(Filepathname)returnpathname.getName().endsWith(,.java")2,将每个文件复制到另外一个目录,并改扩展名2.1 得到目标目录,如果目标目录不存在,则创建之2.2 根据源文件名得到目标文件名,注意要用正则表达式,注意.的转义。2.3 根据表示目录的FiIe和目标文件名的字符串,得到表示目标文件的Fileo要在硬盘中准确地创建出一个文件,需要知道文件名和文件的目录。2.4 将源文件的流拷贝成目标文件流,拷贝方法独立成为一个方法,方法的参数采用抽象流的形式。方法接受的参数类型尽量面向父类,越抽象越好,这样适应面更宽广。)分析IiStFileS方法内部的策略模式实现原理FilelistFiles(FileFilterfilter)Filefiles=IistFiIesO;/ArraylistacceptedFiIesList=newArrayList();FileacceptedFiles=newFiIeffiIesJength;intpos=0;for(Filefile:files)booleanaccepted=filter.accept(file);if(accepted)/acceptedFilesList.add(file);acceptedFilespos+=file;Arrays.copyOf(acceptedFileszpos);/retur(File)accpetedFilesList.toArray();)3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如我ABC”,4,应该截取我AB”,输入我ABC汉DEF,6,应该输出我ABU,而不是我ABC+汉的半个。答:首先要了解中文字符有多种编码及各种编码的特征。假设n为要截取的字节数。publicstaticvoidmain(Stringargs)throwsExceptionStringstr="我a爱中华abc我爱传智def;StringStr="我ABC汉”;intnum=trimGBK(str.getBytes("GBK"),5);System.outprintln(str.substring(Oznum);publicStaticinttrimGBK(bytebufzintn)intnum=O;booleanbChineseFirstHalf=false;for(inti=0;i<n;i+)(if(bufi<0&&!bChineseFirstHalf)bChineseFirstHalf=true;elsenum+;bChineseFirstHalf=false;)returnnum;4.有一个字符串,其中包含中文字符.英文字符和数字字符,请统计和打印出各个字符的个数。答:哈哈,其实包含中文字符、英文字符、数字字符原来是出题者放的烟雾弹。Stringcontent=中国aadf的Ill萨bbb菲的zz萨菲”;HashMapmap=newHashMapO;for(inti=0;i<content.length;i+)(charc=contentcharAt(i);Integernum=map.get(c);if(num=null)num=1;elsenum=num÷1;map.put(cznum);for(Map.EntrySetentry:map)system.out.println(entry.getkey()+entry.getValue();)估计是当初面试的那个学员表述不清楚,问题很可能是:如果一串字符如匕aaabbc中国1512”要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。intengishCount;intChineseCount;intdigitCount;for(inti=O;i<str.length;i+)(charch=str.charAt(i);if(ch>=z0,&&ch<=z9')digitCount+)elseif(ch>=xa,&&ch<=fz')(ch>='A'&&ch<='T)(engishCount+;)else(ChineseCount+;)System.out.println();5、说明生活中遇到的二叉树,用java实现二叉树这是组合设计模式。我有很多个(假设10万个)数据要保存起来,以后还需要从保存的这些数据中检索是否存在某个数据,(我想说出二叉树的好处,该怎么说呢?那就是说别人的缺点),假如存在数组中,那么,碰巧要找的数字位于99999那个地方,那查找的速度将很慢,因为要从第1个依次往后取,取出来后进行比较。平衡二叉树(构建平衡二叉树需要先排序,我们这里就不作考虑了)可以很好地解决这个问题,但二叉树的遍历(前序,中序,后序)效率要比数组低很多,原理如下图:代码如下:packagecom.huawei.interview;p

    注意事项

    本文((全)面试 面试软件开发工程师 算法题 含答案.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开