【LeetCode(Java) - 157】用 Read4 读取 N 个字符

1、题目描述

在这里插入图片描述

2、解题思路

  定义一个变量 tmp 表示调用 read4 读到的有效长度;

  定义一个数组 bufTmp 用于装入 read4 读到的数据;

  定义 length 表示已经 bufTmp 的数据有效长度;

  1、循环调用 read4,直到读到的有效长度 tmp 为 0;

  2、每次读取到的 read4 的有效数据装入 bufTmp 中,直到 length == n 为止(不包括 n ,因为索引从 0 开始)

3、解题代码

/**
 * The read4 API is defined in the parent class Reader4.
 *     int read4(char[] buf);
 */

public class Solution extends Reader4 {
    /**
     * @param buf Destination buffer
     * @param n   Number of characters to read
     * @return    The number of actual characters read
     */
     public int read(char[] buf, int n) {
        int tmp;
        int length = 0;
        char[] bufTmp = new char[4];
        while ((tmp = read4(bufTmp)) != 0) {
            for (int i = 0; i < tmp && length < n; i++) {
                buf[length] = bufTmp[i];
                length++;
            }
        }
        return length;
    }
}
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页