Робот может двигаться в самолете в 4 направлениях: U - вверх, D - вниз, L - влево, R - вправо. Пример трафика - UUDLR, DLRUD. Я должен реализовать метод "прогулки", чтобы он возвращал положение робота после прохождения указанного пути. Итак, я делаю это:
class Main {
static int[] walk(String path) {
int[] A = {0,0};
char charFromPath;
for (int i = 0 ; i < path.length() ; i++) {
charFromPath = path.charAt(i);
if(charFromPath == 'U')
{
A[1]++;
}
if(charFromPath == 'D')
{
A[1]--;
}
if(charFromPath == 'L')
{
A[0]--;
}
if(charFromPath == 'R')
{
A[0]++;
}
}
return A;
}
public static void main(String[] args) {
{
String path="UUDLR";
int[] position = walk(path);
System.out.println("case 1 - path "+path+ " position 0,1");
if(position[0]==0 && position[1]==1)
System.out.println("the robot went right");
else
System.out.println("the robot smashed");
}
{
String path="DLRUD";
int[] position = walk(path);
System.out.println("\ncase 2 - path "+path+ " position 0,-1");
if(position[0]==0 && position[1]==-1)
System.out.println("the robot went right");
else
System.out.println("the robot smashed");
}
}}
Теперь в версии 2 в соответствии с логикой U, D, L, R, команды ВВЕРХ ВНИЗ ВЛЕВО ВПРАВО. Пример трафика - UPUPLEFTRIGHTUP.
Теперь в версии 3 команды, например, 3xUP 2xLEFT DOWN RIGHT. 3xUP означает движение три раза вверх и 2xLEFT 2 раза влево. Добавьте ограничение в движении для робота, он не может выходить за пределы области 10х10 (элемент 10.10 или -10, -10 - последнее действительное значение).
Понятия не имею, как это написать. Как посчитать количество повторений строки в строке?