[Swift]LeetCode158. 用Read4來讀取N個字符II $ Read N Characters Given Read4 II

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-tbvvekzc-me.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

The API: int read4(char *buf) reads 4 characters at a time from a file.git

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.github

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.函數


API:int Read 4(char *BUF)每次從一個文件讀取4個字符。spa

返回值是讀取的實際字符數。例如,若是文件中只剩下3個字符,則返回3。code

經過使用read4 API,實現從文件中讀取n個字符的int read(char*buf,int n)函數。htm

注:blog

讀取函數能夠被屢次調用。ip


 1 class Solution {
 2     var readPos:Int = 0
 3     var writePos:Int = 0
 4     var buff:[Character] = [Character](repeating:" ",count:4)
 5     func read(_ buf:[Character],_ n:Int) -> Int {
 6         var i:Int = 0
 7          while (i < n && (readPos < writePos || (readPos = 0) < (writePos = read4(buff))))
 8         {
 9             buf[i] = buff[readPos]
10             i += 1
11             readPos += 1
12         }
13         return i
14     }
15 }
相關文章
相關標籤/搜索