boolean reachesRepeat(State start) {
Set<State> seen = new HashSet<>();
State state = start;
while (seen.add(state)) {
if (done(state)) return false;
state = next(state);
}
return true;
}
def reaches_repeat(start) -> bool:
seen = set()
state = start
while state not in seen:
seen.add(state)
if done(state):
return False
state = next_state(state)
return True
def reachesRepeat(start: State): Boolean =
val seen = scala.collection.mutable.Set[State]()
var state = start
while !seen.contains(state) do
seen += state
if done(state) then return false
state = nextState(state)
true
bool reachesRepeat(State start) {
std::unordered_set<State> seen;
State state = start;
while (!seen.count(state)) {
seen.insert(state);
if (done(state)) return false;
state = nextState(state);
}
return true;
}