Loading...
PlamenNeykov avatar PlamenNeykov 3 Точки

Задача "Secret Chat" от "Programming Fundamentals Final Exam Retake 10.04.2020"

Здравейте,

При въвеждане на примерните входове на задачата всичко е наред, но в "Judje" някои тестове не минават и получавам само 62/100. Каква може да е причината?

Ето го и моя код:

import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ExamTask___SecretChat {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String input = scanner.nextLine();

        String[] task = scanner.nextLine().split("(\\:)(\\|)(\\:)");

        while (!task[0].equals("Reveal")) {

            switch (task[0]) {
                case ("ChangeAll"):
                    char oldSymbol = task[1].charAt(0) ;
                    char newSymbol = task[2].charAt(0);

                    input=input.replace(oldSymbol,newSymbol);
                    System.out.println(input);
                    break;
                case ("InsertSpace"):
                    int spaceNum = Integer.parseInt(task[1]);
                    input = input.substring(0,spaceNum)+" "+input.substring(spaceNum,input.length());
                    System.out.println(input);
                    break;
                case("Reverse"):
                    String forCheck = task[1];


                      if (input.contains(forCheck)) {
                          StringBuilder forReplays = new StringBuilder();

                        for (int i = forCheck.length()-1; i >= 0; i--) {
                            forReplays.append(forCheck.charAt(i));
                        }
                        input=input.replace(forCheck, forReplays);
                          System.out.println(input);

                    } else {
                        System.out.println("error");
                    }


                    break;

            }
            task = scanner.nextLine().split("(\\:)(\\|)(\\:)");
        }
        System.out.printf("You have a new text message: %s",input);
    }
}

 

Благодаря за съдействието.

Тагове:
0
Java Fundamentals 05/12/2020 21:41:14
MartinBG avatar MartinBG 4803 Точки
Best Answer

ChangeAll и Reverse командите не бяха имплементирани според заданието.

 

Това е оправения код - питайте, ако има нещо неясно:

import java.util.Scanner;
import java.util.regex.Pattern;

public class ExamTask___SecretChat {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String input = scanner.nextLine();

        String[] task = scanner.nextLine().split(":\\|:");

        while (!task[0].equals("Reveal")) {

            switch (task[0]) {
            case ("ChangeAll"):
                input = input.replace(task[1], task[2]);
                System.out.println(input);
                break;
            case ("InsertSpace"):
                int spaceNum = Integer.parseInt(task[1]);
                input = input.substring(0, spaceNum) + " " + input.substring(spaceNum, input.length());
                System.out.println(input);
                break;
            case ("Reverse"):
                String forCheck = task[1];
                if (input.contains(forCheck)) {
                    String forReplays = new StringBuilder(forCheck).reverse().toString();
                    input = input.replaceFirst(Pattern.quote(forCheck), "") + forReplays;
                    System.out.println(input);
                } else {
                    System.out.println("error");
                }
                break;
            }
            task = scanner.nextLine().split(":\\|:");
        }
        System.out.printf("You have a new text message: %s", input);
    }
}

 

1
PlamenNeykov avatar PlamenNeykov 3 Точки

Благодаря за съдействието.

1
stoian_delev avatar stoian_delev 4 Точки

Здравей, имам един въпрос ако искаме да премахнем всички съвпадения в думата и да го добавим само веднъж накрая как ще стане?

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