給你乙個檔案,並且該檔案只能通過給定的 read4 方法來讀取,請實現乙個方法使其能夠讀取 n 個字元。
read4 方法:
api read4 可以從檔案中讀取 4 個連續的字元,並且將它們寫入快取陣列 buf 中。
返回值為實際讀取的字元個數。
注意 read4() 自身擁有檔案指標,很類似於 c 語言中的 file *fp 。
read4 的定義:下列是一些使用 read4 的例子:引數型別: char buf
返回型別: int
注意: buf 是目標快取區不是源快取區,read4 的返回結果將會複製到 buf 當中。
file file(「abcdefghijk」); // 檔名為 「abcdefghijk」, 初始檔案指標 (fp) 指向 『a』read 方法:char buf = new char[4]; // 建立乙個快取區使其能容納足夠的字元
read4(buf); // read4 返回 4。現在 buf = 「abcd」,fp 指向 『e』
read4(buf); // read4 返回 4。現在 buf = 「efgh」,fp 指向 『i』
read4(buf); // read4 返回 3。現在 buf = 「ijk」,fp 指向檔案末尾
通過使用 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。
// forward declaration of the read4 api.
intread4
(char
*buf)
;class
solution
};
157 用 Read4 讀取 N 個字元
題目描述 給你乙個檔案,並且該檔案只能通過給定的 read4 方法來讀取,請實現乙個方法使其能夠讀取 n 個字元。read4 方法 api read4 可以從檔案中讀取 4 個連續的字元,並且將它們寫入快取陣列 buf 中。返回值為實際讀取的字元個數。注意 read4 自身擁有檔案指標,很類似於 c...
每日刷題 N皇后
n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。皇后的攻擊範圍為 自己所在的一行 自己所在的一列 以及自己所在的兩個對角線上。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。每一種解法包含乙個明確的 n 皇后問...
每日刷題 N皇后II
n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。皇后的攻擊範圍為 自己所在的一行 自己所在的一列 以及自己所在的兩個對角線上。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回 n 皇后不同的解決方案的數量。示例 輸入 4 輸出 2 解釋 4 皇后...