LeetCode - Read N Characters Given Read4 II - Call multiple times
来源:互联网 发布:java中的集合 编辑:程序博客网 时间:2024/05/01 15:37
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.
// 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) { int cnt = 0; int sz; if(buf_len > 0){ int mn = min(buf_len, n); memcpy(buf, buffer, mn); cnt += mn; if(n < buf_len){ memcpy(buffer, buffer + n, buf_len - n); } buf_len -= mn; } int leftsz = 0; while(cnt < n){ sz = read4(buffer); memcpy(buf + cnt, buffer, min(n - cnt, sz)); leftsz = sz - min(n - cnt, sz); cnt += min(n - cnt, sz); if(sz < 4) break; } if(leftsz != 0){ buf_len = leftsz; memcpy(buffer, buffer + sz - leftsz, leftsz); } return cnt; } char buffer[4]; int buf_len = 0;};
0 0
- LeetCode - Read N Characters Given Read4 II - Call multiple times
- Read N Characters Given Read4 II - Call multiple times
- Read N Characters Given Read4 II - Call multiple times
- Read N Characters Given Read4 II - Call multiple times
- [LeetCode158]Read N Characters Given Read4 II - Call multiple times
- Read N Characters Given Read4 II - Call multiple times
- Read N Characters Given Read4 II - Call multiple times
- Read N Characters Given Read4 II - Call multiple times
- Read N Characters Given Read4 II - Call multiple times
- leetcode 160: Read N Characters Given Read4 II - Call multiple times
- LeetCode 题解(234) : Read N Characters Given Read4 II - Call multiple times
- [LeetCode] 158. Read N Characters Given Read4 II - Call multiple times
- [leetcode] 158. Read N Characters Given Read4 II - Call multiple times 解题报告
- LeetCode 158. Read N Characters Given Read4 II - Call multiple times(读文件流)
- Leetcode 157 & 158 Read N Characters Given Read4 I & II - Call multiple times
- LeetCode - Read N Characters Given Read4 I && II
- [Leetcode] 158. Read N Characters Given Read4 II
- Leetcode 158 Read N Characters Given Read4 II
- (转)武大遥感院实践队文章
- 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
- 1020. 月饼 (25)
- Swift学习笔记系列——(19)嵌套类型
- java volatile
- LeetCode - Read N Characters Given Read4 II - Call multiple times
- (visual)c++ 内存分配
- backbonejs快速入门(六)-模型model
- android 自定义Dialog页面加载中效果的进度条 Dialog 边角 Dialog 棱角
- 常用简体汉字unicode编码(3500个)
- java中treemap和treeset实现(红黑树)
- context:property-placeholder
- git merge 和 git merge --no-ff
- java类过滤器,防止页面sql注入