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 using the read4 API, implement the function int read(char *buf, int n) that reads
n characters from the file.

Note:

The read function may be called multiple times.

[分析]

用一个cache 和 一个指针, 不够就read4

[CODE]

// Forward declaration of the read4 API.
int read4(char *buf);

class Solution {
public:
    /**
     * @param buf Destination buffer
     * @param n   Maximum number of characters to read
     * @return    The number of characters read
     */
    char cache[4];
    int p = -1;
    int r = 0;

    int read(char *buf, int n) {
        if(n<=0) return 0;
        int s = n;
        if(p==-1) {
            r = read4(cache);
            p = 0;
        }

        while(n>0 && p<r) {
            *buf = cache[p];
            ++buf;
            n--;
            p++;
            if(p==r) {
                r = read4(cache);
                p = 0;
            }
        }

        return s - n;

    }
};
时间: 2024-07-30 10:21:20

leetcode 160: Read N Characters Given Read4 II - Call multiple times的相关文章

[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

[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 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 */

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的函数,实现一个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 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