zoukankan      html  css  js  c++  java
  • 《Cracking the Coding Interview》——第13章:C和C++——题目1

    2014-04-25 19:13

    题目:用C++写一个读取文件倒数K行的方法。

    解法:因为是要取倒数K行,所以我的思路是一行一行地读。过程中需要保存一个长度为K的链表,每次新读到一行都将表头节点移到表尾,如此滚动直到文件结束。最后表头节点中存的字符串就是倒数第K行,依次输出就是倒数K行了。不过当时做这题的时候貌似偷懒了,直接用python写了个偷懒并且不高效的方法。

    代码:

     1 import sys
     2 import os
     3 import os.path
     4 
     5 if __name__ == '__main__':
     6     if len(sys.argv) == 1 or len(sys.argv) > 3:
     7         print "Usage: python p13-1.py [FILE NAME] [k]"
     8         print "Description: output the last k lines of a file."
     9         sys.exit(0);
    10     if len(sys.argv) == 2:
    11         k = 5
    12     if len(sys.argv) == 3:
    13         k = int(sys.argv[2])
    14         k = 5 if k <= 0 else k
    15     file_name = sys.argv[1]
    16     if os.path.isfile(file_name) == False:
    17         print "File "%s" is not found." % file_name
    18         sys.exit(1)
    19     file = open(file_name, 'r')
    20     lines = file.readlines()
    21     file.close()
    22     k = len(lines) if k > len(lines) else k
    23     line_count = len(lines)
    24     for i in range(line_count - k, line_count):
    25         print lines[i],
    26     
  • 相关阅读:
    HTTP协议详情
    HTTP入门
    DNS vs CDN
    TCP/IP协议和互联网协议群
    常用docker镜像
    linq to sql 把数据库连接字段写入配置文件
    微信开发--one.微信平台验证
    项目--ajax上传文件(本次是图片)(.net)
    项目--Repeater嵌套横向显示
    项目--物流查询实现
  • 原文地址:https://www.cnblogs.com/zhuli19901106/p/3689844.html
Copyright © 2011-2022 走看看