由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一道FB面试题
相关主题
从招人角度准备面试.今天的面试经验
一个cc150里面的题目,不解Google Intern 面试 【请教】
怎么读一个超大文件的最后n行?非CS专业的Bloomberg onsite面试也要编程吗
file 输入和 stdin 输入与Bloomberg的情路纠葛,再贡献三道面试题
{0xFACEB00C>>2 in decimal}@fb.com到底是啥?问个bloomberg的老题
异步写文件的问题分享amazon onsite ( rejected)
google面试有问protocol buffer嘛share一个大公司的onsite interview question
什么是【执行offer】 executive offer?西部公司都爱白板写code么
相关话题的讨论汇总
话题: tail话题: file话题: fileindex话题: filelength
进入JobHunting版参与讨论
1 (共1页)
w********s
发帖数: 214
1
implement linux command tail.
We will focus only on "-n" and "-f" options.
tail FILE 是显示打印文件最后10行。tail -n 5表示打印文件最后五行。
The -f option causes tail to not stop when end of file is
reached, but rather to wait for additional data to be appended
to
the input.
有两个concern,
文件可能很大,所以不能全部读入,问怎么解决。
文件可能大得超过了内存,问怎么读。
(2) Two cases for value of N (A) N is small to fit in memory (B) N is large
to fit in memory
Please email your code and clear instructions to execute your program.
c***0
发帖数: 449
2
你看看这个行不行。
void tail(char* file, int fileLength, int n){
int subfileLength;
int fileIndex;
if (n == 0) return;
if (fileLength > memorySize){
subfileLength = roundup(fileLength/memorySize);
fileIndex = memorySize - roundup(n/subfileLength);
file = file + fileIndex * subfileLength;
tail(file, subfileLength, n%subfileLength);
displayfromIndex(fileIndex + 1);
}
else
displayLastNLines();
}
w********s
发帖数: 214
3
貌似LS的代码有些问题。
tail(file, subfileLength, n%subfileLength); 这一行怎么解?
能不能给一个real code,这样的pseudo code反而不是特别容易读。
不过还是多谢回复了
c***0
发帖数: 449
4
这一行递归啊,当小文件小于内存大小的时候用一个大小为n%subfileLength的
circular buffer就可以搞定了。
w*******s
发帖数: 138
5
开一个固定大小的缓存,从后到前读文件直到找到了n行,然后从此位置开始再读文件
,打印

appended

【在 w********s 的大作中提到】
: implement linux command tail.
: We will focus only on "-n" and "-f" options.
: tail FILE 是显示打印文件最后10行。tail -n 5表示打印文件最后五行。
: The -f option causes tail to not stop when end of file is
: reached, but rather to wait for additional data to be appended
: to
: the input.
: 有两个concern,
: 文件可能很大,所以不能全部读入,问怎么解决。
: 文件可能大得超过了内存,问怎么读。

w********s
发帖数: 214
6
能给个代码学习一下么?最好是java的

【在 w*******s 的大作中提到】
: 开一个固定大小的缓存,从后到前读文件直到找到了n行,然后从此位置开始再读文件
: ,打印
:
: appended

s**x
发帖数: 7506
7
这个 -f 还挺麻烦的, 刚查了查,要用 inotify to detech when the file is
modified, 还没用过。
问这种 I/O 的都是吃饱了撑的没事干的,sigh.
w********s
发帖数: 214
8
而且从后往前读文件貌似不能用buffer啊,如果buffer输出的话,那结果就不是tail了
吧?如果一个buffer一个buffer输出的话,应该是从前往后顺序输出吧?

【在 w*******s 的大作中提到】
: 开一个固定大小的缓存,从后到前读文件直到找到了n行,然后从此位置开始再读文件
: ,打印
:
: appended

w********s
发帖数: 214
9
嗯,的确啊,不过既然有人问了就学习一下呗

【在 s**x 的大作中提到】
: 这个 -f 还挺麻烦的, 刚查了查,要用 inotify to detech when the file is
: modified, 还没用过。
: 问这种 I/O 的都是吃饱了撑的没事干的,sigh.

s**x
发帖数: 7506
10

同是码工,相煎太急阿。 :)

【在 w********s 的大作中提到】
: 嗯,的确啊,不过既然有人问了就学习一下呗
w********s
发帖数: 214
11


【在 s**x 的大作中提到】
:
: 同是码工,相煎太急阿。 :)

w*******s
发帖数: 138
12
源码:
http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/tail.c#

【在 w********s 的大作中提到】
: 而且从后往前读文件貌似不能用buffer啊,如果buffer输出的话,那结果就不是tail了
: 吧?如果一个buffer一个buffer输出的话,应该是从前往后顺序输出吧?

w********s
发帖数: 214
13
多谢楼上,不过我想他们要的solution应该不会这么复杂。
1 (共1页)
进入JobHunting版参与讨论
相关主题
西部公司都爱白板写code么{0xFACEB00C>>2 in decimal}@fb.com到底是啥?
大家google/amazon/facebook onsite白板coding的时候是不是都写出完整的code啊?异步写文件的问题
phone interview的在线编程是怎么个弄法?google面试有问protocol buffer嘛
问一道算法题什么是【执行offer】 executive offer?
从招人角度准备面试.今天的面试经验
一个cc150里面的题目,不解Google Intern 面试 【请教】
怎么读一个超大文件的最后n行?非CS专业的Bloomberg onsite面试也要编程吗
file 输入和 stdin 输入与Bloomberg的情路纠葛,再贡献三道面试题
相关话题的讨论汇总
话题: tail话题: file话题: fileindex话题: filelength