找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6806|回复: 4
收起左侧

[米群网刷题小分队] 【LeetCode小分队】【Read N Characters Given Read4 】-【刷题第一弹2014】

[复制链接]

91

主题

47

精华

1916

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1916

热心会员突出贡献优秀版主最佳新人精华帖之王活跃会员

发表于 12-5-2014 08:57 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
快速通道:
https://oj.leetcode.com/problems/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 read4 API, implement the function int read(char *buf, int n) that reads 【i】n characters from the file.



建议的回复格式:(如果大家有更好的格式可以补充哦)
思路:(必填)
代码:(必填)
复杂度分析:(必填)
细节和陷阱:(选填)
相似题目:(选填)


=========点击传送门查看所有题目哟========
                            汇总贴 传送门
==================================

91

主题

47

精华

1916

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1916

热心会员突出贡献优秀版主最佳新人精华帖之王活跃会员

 楼主| 发表于 12-5-2014 09:11 PM | 显示全部楼层
本帖最后由 MengMa 于 12-6-2014 04:58 PM 编辑

[cpcs题解]

思路:
直接k = read4(bb) 然后循环for (int i = 0; i < k; ++i) { if (index == n) { return index;} buf[index++] = bb[ i ] ;} 然后外面判断if (k < 4) { return index;}
外面是个死循环不断 k = read4(bb) 就行。。。

代码:
  1. public class Solution extends Reader4 {
  2.     /**
  3.      * @param buf Destination buffer
  4.      * @param n   Maximum number of characters to read
  5.      * @return    The number of characters read
  6.      */
  7.     public int read(char[] buf, int n) {
  8.         int index = 0;
  9.         while(index < n)
  10.         {
  11.             char[] tmp = new char[4];
  12.             int k = read4(tmp);
  13.             for(int i = 0; i < k && index < n; i++)
  14.                 buf[index++] = tmp【i】;
  15.             if(k < 4)
  16.                 return index;
  17.         }
  18.         return index;
  19.     }
  20. }
复制代码


回复 支持 反对

使用道具 举报

91

主题

47

精华

1916

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1916

热心会员突出贡献优秀版主最佳新人精华帖之王活跃会员

 楼主| 发表于 12-5-2014 09:12 PM | 显示全部楼层
Effie原题讨论贴链接在此: http://www.meetqun.com/thread-2229-1-2.html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表