Loading...
Deianov avatar Deianov 1 Точки

Java Advanced - Functional Programming - 10. Predicate Party!

Здравейте,

имам проблем с 1-ви тест на тази задача, написах я по 10 начина, след това я преписах дословно от предишно издание на курса и този тест винаги е грешен.

Ще се радвам, ако някой помогне.

това е кодът>

https://pastebin.com/YU0Emnik

Тагове:
0
Java Advanced
knoteva avatar knoteva 1081 Точки

Здравей,

На мен ми дава 100 точки. Каква грешка ти дава? Може judge да е бил претоварен.

0
Deianov avatar Deianov 1 Точки

Test #1 (Incorrect answer)

сега пак го пуснах и пак, над 10 пъти съм го пробвал, не ми прилича на претоварен judge.

0
Deianov avatar Deianov 1 Точки

Благодаря за отделеното време,

вече всичко е точно, оказа се едно сортиране, което не е споменато в заданието.

това е последният код>

//10. Predicate Party!
package E_FunctionalProgramming.Exercises;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

class E10 {
    public static void main(String[] args) throws IOException {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String line = reader.readLine();

        List<String> guests = Arrays.stream(line.split("\\s+")).collect(Collectors.toList());

        while (!"Party!".equals(line = reader.readLine())) {

            String[] commandTokens = line.split("\\s+");

            String command = commandTokens[0];
            String predicateType = commandTokens[1];
            String predicateArgument = commandTokens[2];

            if (command.equals("Remove")) {
                guests.removeIf(getPredicate(predicateType, predicateArgument));
            }
            else if (command.equals("Double")) {

                for (int i = 0; i < guests.size(); i++) {
                    String guest = guests.get(i);
                    if (getPredicate(predicateType, predicateArgument).test(guest)) {
                        guests.add(i++, guest);
                    }
                }
            }
        }
        if (guests.isEmpty()) {
            System.out.println("Nobody is going to the party!");
        } else {
            Collections.sort(guests);
            System.out.println(String.format("%s are going to the party!", String.join(", ", guests)));
        }
    }

    private static Predicate<String> getPredicate(String type, String parameter) {
        switch (type) {
            case "StartsWith":
                return text -> text.startsWith(parameter);
            case "EndsWith":
                return text -> text.endsWith(parameter);
            case "Length":
                return text -> text.length() == Integer.parseInt(parameter);
            default:
                return text -> false;
        }
    }
}

 

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