[leetcode]Read N Characters Given Read4
2422 ワード
read 4でreadnを実現...
一度呼び出すまで、どうやってもいいような気がします...この問題にIIがあるのは何度も呼び出されたと思います.の
何度も勇哥bufferがたくさん読んだ分だけ貯めておけばよかった気がします...
一度呼び出すまで、どうやってもいいような気がします...この問題にIIがあるのは何度も呼び出されたと思います.の
何度も勇哥bufferがたくさん読んだ分だけ貯めておけばよかった気がします...
// 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
*/
int read(char *buf, int n) {
char buffer[5];
int cnt = 0;
while (cnt < n) {
int sz = read4(buffer);
memcpy(buf + cnt, buffer, sz);
cnt += sz;
if (sz < 4) break;
}
if (cnt > n) {
buf[n] = '\0';
cnt = n;
}
return cnt;
}
};