LeetCode 158: Read N Characters Given Read4 II

/* 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   Maximum number of characters to read
     * @return    The number of characters read
     */
    private int prevStart = 0;
    private int prevEnd = 0;
    private char[] buffered = new char[4];
    public int read(char[] buf, int n) {
        int currentStart = 0;
        while (currentStart < n) {
            if (prevStart == 0) {
                prevEnd = read4(buffered);
            }
            if (prevEnd == 0) {
                break;
            }
            while (currentStart < n && prevStart < prevEnd) {
                buf[currentStart++] = buffered[prevStart++];
            }
            if (prevStart >= prevEnd) {
                prevStart = 0;
            }
        }
        return currentStart;
    }
}
时间: 2024-10-04 03:46:44

LeetCode 158: Read N Characters Given Read4 II的相关文章

[LeetCode] 158. Read N Characters Given Read4 II - Call multiple times

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

[leetcode]158. Read N Characters Given Read4 II - Call multiple times 用Read4读取N个字符2 - 调用多次

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

leetcode 160: Read N Characters Given Read4 II - Call multiple times

Total Accepted: 909 Total Submissions: 4757 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

[Locked] Read N Characters Given Read4 &amp; Read N Characters Given Read4 II - Call multiple times

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 rea

leetcode[157] Read N Characters Given Read4

题目意思是给你一个read4的函数,实现一个readn的函数. 一开始题目一直没搞懂,原来,read4(buf) 是指,读4个字符存到buf,或者读剩下的不足四个的字符,返回的数字是存到buf里的字符数. 没有买书,只能网上看看别人分享的代码: // Forward declaration of the read4 API. int read4(char *buf); class Solution { public: /** * @param buf Destination buffer * @

Leetcode-Read N Characters Given Read4 II

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

LeetCode-Read N Characters Given Read4 II - Call multiple times

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

Read N Characters Given Read4 II - Call multiple times

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

leetcode 157. Read N Characters Given Read4 利用read4实现read --------- java

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