@AlexWD

Не получается решить задачу?

Помогите пожалуйста с решением задачки:
Задание:
Написать метод, который выполняет закодированные в строке
команды. Начальное число 0.
Сигнатура: List getResult(final String input)
На вход подается строка, содержащая только 4 вида символов:
i - увеличить число на один;
d - уменьшить число на один;
s - возвести число в квадрат;
o - добавить число в выходной список.
Пример:
Входные данные: "iiisdoso"
Выходные данные: {8, 64}

На JS решение простейшее:
function Test(str) {
	let output = [], a = 0;
  for(let i = 0; i < str.length; i++) {
  	if(str[i] === 'i') a += 1;
    if(str[i] === 'd') a -= 1;
    if(str[i] === 's') a = Math.pow(a, 2);
    if(str[i] === 'o') output.push(a);
  }
  return output;
}
console.info(Test('iiisdoso'));

Но вот превратить его в Java не хватает мозгов мне что-то.
Из попыток моих вот:
package com.company;

public class Main {

    public static int[] main(String[] args) {
        int output[], a = 0, str[];
        for (int i = 0; i < str.length(); i++) {
            if(str[i] == 'i') {
                a += 1;
            };
            if(str[i] == 'd') {
                a -= 1;
            }
            if(str[i] == 's') {
                a += 2;
            }
        }
        return output;

        System.out.println("iiisdoso");
    }
}
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Ну ты бы хоть переписал джыэс в джаву напрямую, и сигнатуру сделал такую как надо.
Почему у тебя str это не строка, а массив?
Почему str не приходит извне?
С каких это пор +=2 возводит в степень?
Где добавление в список?
Где вообще сам список, если ты объявил массив?
Зачем у тебя main возвращает не код возврата, а результат вычисления?
Зачем у тебя после возврата значения из метода что-то происходит?
Зачем ты пишешь свою тестовую строку в консоль?

Почти все вопросы не специфичны для джавы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы