程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

奇虎360公司2015届校招笔试题(奇虎360面试)

balukai 2025-01-26 21:06:24 文章精选 7 ℃

奇虎360公司2015届校招笔试题,前面都是选择题,只有一道问答题。

本文跳过选择题,只讨论最后一道问答题。

题目:

在写一个函数,根据两文件的绝对路径算出相对路径。如

a="/qihoo/app/a/b/c/d/new.c",b="/qihoo/app/1/2/test.c',那么b相对于a的相对路径是"../../../../1/2/test.c

分析:

这道题本身,题目意思很简单,就是求路径b相对于路径a的相对路径,通俗的讲就是:当前你在a路径下,此时你怎么进入路径b(不能走绝对路径)。答案可以有很多,这里应该是问长度最短的相对路径。

思路:

这道题本身很简单,可以同时从路径a和路径b往下走,如果相同,则continue,遇到不同的时候,路径b停止,保留遗留路径;路径a则每再往下走一层,产出一个../的头部。将产出对所有头部拼接一起,再拼上b遗留部分,就是最后的结果。

比如题目中的,首先a和b可以往下走,直到走完/qihoo/app/开始出现不同,此时b遗留了1/2/test.c。a继续往下走,有a,b,c,d四层,得到头部../../../../,头部与b遗留拼接,得到最后的结果。

这道题的时间复杂读,O(n),只需一遍同时遍历2个路径。

选择题部分本文没有讨论,有需要交流的同学单独给回复。

Tags:

最近发表
标签列表