职业经验 # 每日一道面试题 # 上海帜讯测试开发,体现基本功的编程题

mary for 求职面试圈 · 2017年10月10日 · 最后由 codeskyblue 回复于 2017年10月11日 · 1839 次阅读

形式是在白纸上写,十分钟,随便有哪种编程语言都行。然后,给面试官讲明你的思路。其实,也是基本功的一个体现。字符串操作,常用的几个库。以前做开发时,去迈瑞面试,有个对日志处理的编程题,与这个也挺类似。就把这个题目专门揪出来了。
题目:有个 old.txt 文本,有很多行,每行都是同类型的数据,每行有多少个数据是不清楚的,格式是用逗号分开的。比如第一行数据:2017-05-04,2016-07-06,2017-08-10,.....。第二行数据:张三,李四,王五,.....。第三行数据:江苏,湖北,北京,上海,......。要求:文本行数是需要自己用库函数获取的,如 old.txt 这个文本有 m 行数据。每行中随机取一个,这样就有 m 个数据了。m 个数据,用逗号分开,组成新的一行。如新的一行为:2017-08-10,王五,上海,......。然后,讲组成的新的行写入一个新文本 new.txt 中,如果要存 N 行。N 可能很大,如果存的新文本大于 5M,则在创建新的一个文本中。程序不难,重点几个细节要处理好。

输入:已有文本 old.txt,存入新文本的行数 n;
输出:组成的新文本,new1.txt,new2.txt,,,,,,,
新文本数目与存入的行数 n 有关。感兴趣的,自己动手写写哦~~

共收到 3 条回复 时间 点赞
mary #1 · 2017年10月11日 Author

自己挖的坑自己来填吧,没有描述清楚。改了三次,彻底把人绕晕了。所以,我还是图文并茂的公布下编程,以便大家能理解我上面题目的意思。
1.原文件格式,如截图。写了个简单好懂的。每行的数目是不确定的。

2.编码如下:注意重点部分。之前在纸上写,没调试过。今天调试发现了忽视的问题。

mary #2 · 2017年10月11日 Author

因为公司加密软件的原因,代码是在贴不上去,索性截图了。
你也可以按自己的方式做,写的不好的地方也帮我指出来哈。
在获取新行的时候,因为不想每次都打开 oldFile.txt。就让每次生成一个新行后,seek 到文件头。
程序需要注意的细节点:
1.在每行中,随机取数时,range 的起始不要弄错了。
2.获取原始行中,要注意过滤换行符。
3.读取完后,写完后,要关掉文件。

mary 回复

你们公司的加密软件好牛逼

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册