LeetCode - 1286 解題紀錄 / August LeetCoding Challenge Day 13
題目: LeetCode - 1286. Iterator for Combination
題目說明
設計一個 Class,並完成題目要求完成的函式。
- CombinationIterator(string characters, int combinationLength):
Constructor,characters
為排序好的字串並且每個字元只會出現一次,combinationLength
為組合的長度。 - next(): 按照字典序返回長度為
combinationLength
的下一個排列。 - hasNext(): 返回是否還能形成下一個排序。
解題思路
其實就是排序的問題,最小的情況就是 characters
的前 combinationLength
個字元,最大的情況就是 characters
的倒數 combinationLength
個字元。
- CombinationIterator(string characters, int combinationLength): 在構造的時候我們把最小的情況放入
cur
,最大的情況放入last
,並紀錄原本的characters
及combinationLength
。 - next(): 更新
cur
即可。 - hasNext(): 若是
cur != last
代表還能找出下一個排序。
參考解法
1 | class CombinationIterator { |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論