这道题虽说归为简单级别,但是通过率很低,主要原因就是题意很不好理解。。。给出的API输入是什么,具体什么意思,要花好些时间都不一定理解。。。
我反正是看了参考答案才知道这API是干嘛呢。。才了解题意,就是说,题目给出了一个buff[] 和 int n 用来存放从某个文件file里取的n个字符,但是!!有可能file中没有n个字符,那么这个时候,就到把文件读完就okay了。。。
/* 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
*/
public int read(char[] buf, int n) {
for(int i=0; i<n; i+=4){ // my mistake, i should +4
char[] tmp = new char[4]; // my mistake: it is the char[], not int[]
int len=read4(tmp);
System.arraycopy(tmp, 0, buf, i, Math.min(len, n-1-i+1));
if(len<4) return Math.min(i+len-1+1, n);
}
return n;
}
}