2015年10月15日星期四

Leetcode 157 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 n characters from the file.
Note:
The read function will only be called once for each test case.
Solution 1:  simple array question.
 public class Solution extends Reader4 {  
   /**  
    * @param buf Destination buffer  
    * @param n  Maximum number of characters to read  
    * @return  The number of characters read  
    */  
   public int read(char[] buf, int n) {  
     char[] buf4=new char[4];  
     int i=0;  
     while (i<n) {  
       int m=read4(buf4);  
       int j=0;  
       while (i<n && j<m) buf[i++]=buf4[j++];  
       if (m<4) break;  
     }  
     return i;  
   }  
 }  

没有评论:

发表评论