Andrey Smith
Andrey Smith

Reputation: 37

Travel around the city in 10 steps

We travel around the city in 4 cardinal directions and can only take 10 steps and must return to the place where we started. My program breaks on tests (didn't come to the place where I started from). Where is the mistake? I know that it can be solved easier, but I would like to know what my mistake is

function isValidWalk(walk) {
    let x = 0, y = 0;
    let result = 0;
    if(walk.length !== 10) {
        return false;
    }
    for (let i = 0; i < 10; i++) {
        if(walk[i] === 'n') {
            x += 1;
        }
        else if(walk[i] === 's') {
            x += -1
        }
        else if(walk[i] === 'w') {
            y += -1;
        }
        else if(walk[i] === 'e') {
            y += 1;
        }
    }
    result = x + y;

    if(result === 0) {
        return true;
    }
    return false;
}

Upvotes: 0

Views: 44

Answers (1)

Nina Scholz
Nina Scholz

Reputation: 386604

You need ot check x and y directly. Their values should be zero, because you can not go north and west to get a neutral position.

if (x === 0 && y === 0) return true;
return false; 

For example look to this walk

NWSSEN

There you have a balanced north and south, as well west and east.

Upvotes: 2

Related Questions