• Read N Characters Given Read4


    The API: int read4(char *buf) reads 4 characters at a time from a file.

    The return value is the actual number of characters read. For example, it returns 3 if there is only 3 characters left in the file.

    By using the read4 API, implement the function int read(char *buf, int n) that reads n characters from the file.

    Note:
    The read function will only be called once for each test case.

    注意:It assumes only read less than n chars, even if the there are more than n chars in a file.

    public int read(char[] buf, int n) {
      boolean eof = false;      // end of file flag
      int total = 0;            // total bytes have read
      char[] tmp = new char[4]; // temp buffer
      
      while (!eof && total < n) {
        int count = read4(tmp);
        
        // check if it's the end of the file
        eof = count < 4;
        
        // get the actual count
        count = Math.min(count, n - total);
        
        // copy from temp buffer to buf
        for (int i = 0; i < count; i++) 
          buf[total++] = tmp[i];
      }
      
      return total;
    }

    reference:https://discuss.leetcode.com/category/166/read-n-characters-given-read4

  • 相关阅读:
    22 组合电路中的竞争--冒险
    21 典型的组合电路模块(2)
    vhdl和verilog的区别
    17 TTL电路系列(2)
    树莓派Pico
    ESP8266/ESP32自动下载电路原理分析
    CH340芯片
    26. 删除排序数组中的重复项
    25. K 个一组翻转链表
    23. 合并K个排序链表
  • 原文地址:https://www.cnblogs.com/hygeia/p/5702953.html
Copyright © 2020-2023  润新知