LeetCode 157. 用 Read4 读取 N 个字符
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 157. 用 Read4 读取 N 个字符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你一個文件,并且該文件只能通過給定的 read4 方法來讀取,請實現一個方法使其能夠讀取 n 個字符。
read4 方法:
API read4 可以從文件中讀取 4 個連續的字符,并且將它們寫入緩存數組 buf 中。
返回值為實際讀取的字符個數。
注意 read4() 自身擁有文件指針,很類似于 C 語言中的 FILE *fp 。
read4 的定義: 參數類型: char[] buf 返回類型: int 注意: buf[] 是目標緩存區不是源緩存區,read4 的返回結果將會復制到 buf[] 當中。 下列是一些使用 read4 的例子: File file("abcdefghijk"); // 文件名為 "abcdefghijk", 初始文件指針 (fp) 指向 'a' char[] buf = new char[4]; // 創建一個緩存區使其能容納足夠的字符 read4(buf); // read4 返回 4?,F在 buf = "abcd",fp 指向 'e' read4(buf); // read4 返回 4。現在 buf = "efgh",fp 指向 'i' read4(buf); // read4 返回 3?,F在 buf = "ijk",fp 指向文件末尾read 方法: 通過使用 read4 方法,實現 read 方法。 該方法可以從文件中讀取 n 個字符并將其存儲到緩存數組 buf 中。您 不能 直接操作文件。 返回值為實際讀取的字符。 read 的定義: 參數類型: char[] buf, int n 返回類型: int 注意: buf[] 是目標緩存區不是源緩存區,你需要將結果寫入 buf[] 中。示例 1: 輸入: file = "abc", n = 4 輸出: 3 解釋: 當執行你的 rand 方法后,buf 需要包含 "abc"。文件一共 3 個字符,因此返回 3。 注意 "abc" 是文件的內容,不是 buf 的內容,buf 是你需要寫入結果的目標緩存區。 示例 2: 輸入: file = "abcde", n = 5 輸出: 5 解釋: 當執行你的 rand 方法后,buf 需要包含 "abcde"。 文件共 5 個字符,因此返回 5。示例 3: 輸入: file = "abcdABCD1234", n = 12 輸出: 12 解釋: 當執行你的 rand 方法后,buf 需要包含 "abcdABCD1234"。 文件一共 12 個字符,因此返回 12。示例 4: 輸入: file = "leetcode", n = 5 輸出: 5 解釋: 當執行你的 rand 方法后,buf 需要包含 "leetc"。 文件中一共 5 個字符,因此返回 5。注意: 你 不能 直接操作該文件,文件只能通過 read4 獲取而 不能 通過 read。 read 函數只在每個測試用例調用一次。 你可以假定目標緩存數組 buf 保證有足夠的空間存下 n 個字符。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/read-n-characters-given-read4
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 類似題目:LeetCode 158. 用 Read4 讀取 N 個字符 II
長按或掃碼關注我的公眾號,一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 157. 用 Read4 读取 N 个字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 608.
- 下一篇: LeetCode 1276. 不浪费原料