План курса / Все задачи / Алгоритмы и структуры данных
Грибник в лесу
легко
# решено
Грибник изначально находится в точке (0, 0) на плоскости. Дана строка s, представляющая последовательность его движений.
Каждый символ строки s обозначает направление: 'U' для движения вверх, 'D' для движения вниз, 'L' для движения влево и 'R' для движения вправо.
Необходимо определить, вернется ли грибник в исходную точку после выполнения всех команд. Возвращается true, если вернется, и false в противном случае.
Пример 1:
Ввод: s = "UD"
Вывод: true
Пример 2:
Ввод: true = "RRDD"
Вывод: false
Ограничения:
len(s) >= 0
Строка s содержит только символы 'U', 'D', 'L', 'R'
public class Solution {
public static bool RowerInTheForest(String s) {
int x = 0, y = 0;
foreach (char step in s) {
if (step == 'U') {
y += 1;
} else if (step == 'D') {
y -= 1;
} else if (step == 'R') {
x += 1;
} else if (step == 'L') {
x -= 1;
}
}
return x == 0 && y == 0;
}
}
#include <string>
using namespace std;
bool rowerInTheForest(string s) {
int x = 0, y = 0;
for (char step : s) {
if (step == 'U') {
y += 1;
} else if (step == 'D') {
y -= 1;
} else if (step == 'R') {
x += 1;
} else if (step == 'L') {
x -= 1;
}
}
return x == 0 && y == 0;
}
package main
func rowerInTheForest(s string) bool {
x, y := 0, 0
for _, step := range s {
if step == 'U' {
y++
} else if step == 'D' {
y--
} else if step == 'R' {
x++
} else if step == 'L' {
x--
}
}
return x == 0 && y == 0
}
import java.util.*;
public class Solution {
public Boolean rowerInTheForest(String s) {
int x = 0, y = 0;
for (char step : s.toCharArray()) {
if (step == 'U') {
y += 1;
} else if (step == 'D') {
y -= 1;
} else if (step == 'R') {
x += 1;
} else if (step == 'L') {
x -= 1;
}
}
return x == 0 && y == 0;
}
}
from typing import *
def rower_in_the_forest(steps: str) -> bool:
x, y = 0, 0
for step in steps:
if step == "U":
y += 1
elif step == "D":
y -= 1
elif step == "R":
x += 1
elif step == "L":
x -= 1
return x == 0 and y == 0
/**
* @param {string} s
* @returns {bool}
*/
export function rowerInTheForest(s) {
let x = 0, y = 0;
for (let step of s) {
if (step === "U") {
y += 1;
} else if (step === "D") {
y -= 1;
} else if (step === "R") {
x += 1;
} else if (step === "L") {
x -= 1;
}
}
return x === 0 && y === 0;
}