由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问道G 的题
相关主题
Google onsite归来刷了半天题
请教 Iterator 一题LC的BST iterator到底要考察什么?
刚刚结束的linkedIn电面再帖一遍Amazon Onsite的题
发个g的电面请教个面经里的设计题
问个题问个最近面试里的题目
iterator 实现 如何 peek(),pop()?FB 面经
Scala怎么通过index访问set或者arrayPython大牛请进
问一道C++ template的面试题Two problems from Google
相关话题的讨论汇总
话题: hasnext话题: pred话题: input话题: iterator话题: predicate
进入JobHunting版参与讨论
1 (共1页)
h*****g
发帖数: 312
1
A. Given
interface Iterator {
T next();
boolean hasNext();
}
interface Predicate {
boolean accept(T t);
}
Implement a method that creates an "accept" iterator that returns items
accepted by the passedin pred variable.
Iterator conditionIterator(Iterator input, Predicate pred) {
}
这题撒意思?需要设计模式的背景知识吗?
p*****2
发帖数: 21240
2
怎么又是这道?
p*****2
发帖数: 21240
3
class NewIterator
{
Iterator input;
Predicate pred;
T next;
boolean valid;
public NewIterator(Iterator _input, Predicate _pred)
{
input=_input;
pred=_pred;
}
public boolean hasNext()
{
if(!valid)
{
while(input.hasNext())
{
T t=input.next();
if(pred.accept(t))
{
next=t;
valid=true;
break;
}
}
}
return valid;
}
public next()
{
T t=null;
if(!valid)
{
hasNext();
}

if(valid)
{
valid=false;
t=next;
}
return t;
}
}
l*********8
发帖数: 4642
4
class ConditionIterater : public Iterator
{
public:
ConditionIterater(Iterator input, Predicate pred)
: m_Input(input), m_Pred(pred), m_HasNext(false)
{
}
T Next()
{
T returnValue = m_Value;
finxNext();
return returnValue;
}
bools hasNext()
{
return m_HasNext;
}
private:
void findNext()
{
m_HasNext = false;
while(m_Input.hasNext())
{
m_Value = m_Input.Next();
if (m_Pred.accept(m_Value) {
m_HasNext = true;
break;
}
}
}
private:
Iterator m_Input;
Predicate m_Pred;
bool m_HasNext;
T m_Value;
}

【在 h*****g 的大作中提到】
: A. Given
: interface Iterator {
: T next();
: boolean hasNext();
: }
: interface Predicate {
: boolean accept(T t);
: }
: Implement a method that creates an "accept" iterator that returns items
: accepted by the passedin pred variable.

p*****2
发帖数: 21240
5

如果一开始调hasNext return false?

【在 l*********8 的大作中提到】
: class ConditionIterater : public Iterator
: {
: public:
: ConditionIterater(Iterator input, Predicate pred)
: : m_Input(input), m_Pred(pred), m_HasNext(false)
: {
: }
: T Next()
: {
: T returnValue = m_Value;

l*********8
发帖数: 4642
6
恩,看了北京二哥的程序,发现的确应该设置个isValid标志

【在 l*********8 的大作中提到】
: class ConditionIterater : public Iterator
: {
: public:
: ConditionIterater(Iterator input, Predicate pred)
: : m_Input(input), m_Pred(pred), m_HasNext(false)
: {
: }
: T Next()
: {
: T returnValue = m_Value;

l*********8
发帖数: 4642
7
本想在constructor里面调用 void findNext()的,忘了。

【在 p*****2 的大作中提到】
:
: 如果一开始调hasNext return false?

l*********8
发帖数: 4642
8
根据peking2的程序和建议改一下:)
class ConditionIterater : public Iterator
{
public:
ConditionIterater(Iterator input, Predicate pred)
: m_Input(input), m_Pred(pred), m_HasNext(false)
{
findNext();
}
T Next()
{
if (m_HasNext==false)
throw exception;
T returnValue = m_Value;
fintNext();
return returnValue;
}
inline bools hasNext()
{
return m_HasNext;
}
private:
void findNext()
{
m_HasNext = false;
while(m_Input.hasNext())
{
m_Value = m_Input.Next();
if (m_Pred.accept(m_Value) {
m_HasNext = true;
break;
}
}
}
private:
Iterator m_Input;
Predicate m_Pred;
bool m_HasNext;
T m_Value;
}
a***g
发帖数: 234
9
这题是考Java么?
p*****2
发帖数: 21240
10

不一定。上边不是有C++的吗?

【在 a***g 的大作中提到】
: 这题是考Java么?
a***g
发帖数: 234
11
这题是考Java么?
1 (共1页)
进入JobHunting版参与讨论
相关主题
Two problems from Google问个题
[google面试]iterator访问iterator 实现 如何 peek(),pop()?
面完G的电面了,忐忑Scala怎么通过index访问set或者array
讨论一个题目问一道C++ template的面试题
Google onsite归来刷了半天题
请教 Iterator 一题LC的BST iterator到底要考察什么?
刚刚结束的linkedIn电面再帖一遍Amazon Onsite的题
发个g的电面请教个面经里的设计题
相关话题的讨论汇总
话题: hasnext话题: pred话题: input话题: iterator话题: predicate