什么网站做软件任务挣钱,wordpress内容,山东电商网站建设,西安制作网站的电话1. 题目
给定一个迭代器类的接口#xff0c;接口包含两个方法#xff1a; next() 和 hasNext()。 设计并实现一个支持 peek() 操作的顶端迭代器 – 其本质就是把原本应由 next() 方法返回的元素 peek() 出来。
示例:
假设迭代器被初始化为列表 [1,2,3]。调用 next() 返回 1…1. 题目
给定一个迭代器类的接口接口包含两个方法 next() 和 hasNext()。 设计并实现一个支持 peek() 操作的顶端迭代器 – 其本质就是把原本应由 next() 方法返回的元素 peek() 出来。
示例:
假设迭代器被初始化为列表 [1,2,3]。调用 next() 返回 1得到列表中的第一个元素。
现在调用 peek() 返回 2下一个元素。在此之后调用 next() 仍然返回 2。
最后一次调用 next() 返回 3末尾元素。在此之后调用 hasNext() 应该返回 false。进阶
你将如何拓展你的设计使之变得通用化从而适应所有的类型而不只是整数型来源力扣LeetCode 链接https://leetcode-cn.com/problems/peeking-iterator 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
// Below is the interface for Iterator, which is already defined for you.
// **DO NOT** modify the interface for Iterator.class Iterator {struct Data;Data* data;
public:Iterator(const vectorint nums);Iterator(const Iterator iter);virtual ~Iterator();// Returns the next element in the iteration.int next();// Returns true if the iteration has more elements.bool hasNext() const;
};
//----------------------以上不用提交----------class PeekingIterator : public Iterator {int curVal;bool end;
public:PeekingIterator(const vectorint nums) : Iterator(nums) {end false;if(Iterator::hasNext()){curVal Iterator::next();}elseend true;}int peek() {return curVal;}int next() {if(end)return -1;int ans curVal;if(Iterator::hasNext())curVal Iterator::next();elseend true;return ans;}bool hasNext() const {return !end; }
};4 ms 9.9 MB