Loading...
antonp1p2 avatar antonp1p2 17 Точки

{Java OOP Basics} Defining Classes => Problem 11 Cat Lady

Здравейте, поради някаква причина в Judge-a тази задача ми минава само единия от 5-те теста, а на останалите ми дава Runtime Error. 

Наистина първоначално бях написал задачата малко хаотично и хабях излишни ресурси и време и с някви цикълчета излишни и все пак би няма нещо кой знае какво в решението, което да бави толкова. 

След това оптимизирах, даже прегледах и видеото от упражнението където е решена задачата и правх if-else проверки в while() цикъла и от видеото видях че ползва момичето switch, реално switch-a e по-бърз от if-else, и switch даже сложих и пак ми минава само 1/5 теста, останалите 4 са Runtime error. Ето ми го решението -->
 

package Prob11;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;

abstract class Cat{

    private String name;

    public Cat(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

class Siamese extends Cat {

    private int earSize;

    public Siamese(String name, int earSize) {
        super(name);
        this.earSize = earSize;
    }

    public int getEarSize() {
        return earSize;
    }

    public void setEarSize(int earSize) {
        this.earSize = earSize;
    }

    @Override
    public String toString() {
        return String.format("Siamese %s %d", super.getName(), this.earSize);
    }
}

class Cymric extends Cat {

    private int furLenght;

    public Cymric(String name, int furLenght) {
        super(name);
        this.furLenght = furLenght;
    }

    public int getFurLenght() {
        return furLenght;
    }

    public void setFurLenght(int furLenght) {
        this.furLenght = furLenght;
    }

    @Override
    public String toString() {
        return String.format("Cymric %s %d", super.getName(), this.furLenght);
    }

}

class StreetExtraordinaire extends Cat {

    private int decibels;

    public StreetExtraordinaire(String name, int decibels) {
        super(name);
        this.decibels = decibels;
    }

    public int getDecibels() {
        return decibels;
    }

    public void setDecibels(int decibels) {
        this.decibels = decibels;
    }

    @Override
    public String toString() {
        return String.format("StreetExtraordinaire %s %d", super.getName(), this.decibels);
    }
}


public class Prob11Main {
    public static void main(String[] args) throws IOException {
//        Scanner scanner = new Scanner(System.in);
        BufferedReader scanner = new BufferedReader(new InputStreamReader(System.in));
        String inputLine = scanner.readLine();
//        List<Cat> cats = new ArrayList<>();
        HashMap<String, Cat> cats = new HashMap<>();

        while(!inputLine.equals("End")){
            String[] splitTheLine = inputLine.split(" ");
            String breed = splitTheLine[0];
            String name = splitTheLine[1];
            int specification = Integer.valueOf(splitTheLine[2]);
            Cat cat  = null;

            switch (breed){
                case "Siamese" :
                    cat = new Siamese(name, specification);
                    break;
                case "Cymric" :
                    cat = new Cymric(name, specification);
                    break;
                case "StreetExtraordinaire" :
                    cat = new StreetExtraordinaire(name, specification);
                    break;
            }

            cats.put(name, cat);

//            if(breed.equals("Siamese")){
//                Cat cat = new Siamese(name, specification);
//                cats.add(cat);
//            }else if(breed.equals("Cymric")){
//                Cat cat = new Cymric(name, specification);
//                cats.add(cat);
//            }else {
//                Cat cat = new StreetExtraordinaire(name, specification);
//                cats.add(cat);
//            }
            inputLine = scanner.readLine();
        }

        String theCatsName = scanner.readLine();

        System.out.println(cats.get(theCatsName));

//        for(int i = 0; i < cats.size(); i++){
//            if(theCatsName.equals(cats.get(i).getName())){
//                System.out.println(cats.get(i).toString());
//            }
//        }
    }
}

 

Тагове:
0
Fundamentals Module
ZahariCheyrekov avatar ZahariCheyrekov 3 Точки

Оставям едно решение за следващите студенти.

T09.CatLady -> https://pastebin.com/heZZsYzQ .

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