Loading...
didislim avatar didislim 2 Точки

Plant Discovery Java Fundamentals

Здравейте,

Може ли да ми кажете какво липсва в кода ми? Judge ми дава 87/100 (runtime error).

Plant Discovery - Pastebin.com

Условието на задачата е това (02. Programming Fundamentals Final Exam - SoftUni Judge):

You have now returned from your world tour. On your way, you have discovered some new plants, and you want to gather some information about them and create an exhibition to see which plant is highest rated.

On the first line, you will receive a number n. On the next n lines, you will be given some information about the plants that you have discovered in the format: "{plant}<->{rarity}". Store that information because you will need it later. If you receive a plant more than once, update its rarity.

After that, until you receive the command "Exhibition", you will be given some of these commands:

  • "Rate: {plant} - {rating}"add the given rating to the plant (store all ratings)
  • "Update: {plant} - {new_rarity}"update the rarity of the plant with the new one
  • "Reset: {plant}"remove all the ratings of the given plant

Note: If any given plant name is invalid, print "error"

After the command "Exhibition", print the information that you have about the plants in the following format:

"Plants for the exhibition:
- {plant_name1}; Rarity: {rarity}; Rating: {average_rating}

- {plant_name2}; Rarity: {rarity}; Rating: {average_rating}

- {plant_nameN}; Rarity: {rarity}; Rating: {average_rating}"

The plants should be sorted by rarity in descending order. If two or more plants have the same rarity value sort them by average rating in descending order. The average rating should be formatted to the second decimal place.

Input / Constraints

  • You will receive the input as described above
  • JavaScript: you will receive a list of strings

Output

  • Print the information about all plants as described above

Благодаря!

 

Тагове:
0
Fundamentals Module
MartinBG avatar MartinBG 4803 Точки

Грешката е някъде в основния цикъл. Решението минава, ако го опростя на:

        String command;
        while (!"Exhibition".equals(command = scanner.nextLine())) {
            String[] commandArr = command.split(" - ");
            String commandName = commandArr[0];
            String plant = commandName.split(": ")[1];
            if (!mapRarity.containsKey(plant)) {
                System.out.println("error");
                continue;
            }
            if (commandName.contains("Rate:")) {
                double rating = Double.parseDouble(commandArr[1]);
                mapRating.get(plant).add(rating);
            } else if (commandName.contains("Update")) {
                int newRarity = Integer.parseInt(commandArr[1]);
                mapRarity.put(plant, newRarity);
            } else {
                mapRating.get(plant).clear();
            }
        }

Трябва да се премахне и ред №18:

mapRating.get(plant).add(0.0);

 

0
didislim avatar didislim 2 Точки

Много благодаря!

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.