Die Musterlösung erzeugt mittlerweile die richtige Lösung. Ich denke das Problem ist, dass in dem "eigenen" Code die Worte groß geschrieben sind man aber nach Kleinbuchstaben sucht; in der Lösung wurden "Rose" etc. klein geschrieben, weshalb das Ergebnis korrekt ist.
Denke ich zumindest
Die Aufgabe "Reihenfolge überprüfen" ist nicht eindeutig formuliert. Ich habe einen Code geschrieben, der die Kopie der Liste macht und diese der String-Längen nach durchsortiert. Folge ist, dass "Sohn" und "Hund" am Anfang stehen. Relativ hierzu verletzt der Input mit "Großevater" die sortierte Liste mit ihrem/n kleinsten Element/en direkt in Index 0. Da das aber einen Fehler auswirft, ist wohl gemeint, dass von Index 0 in der unsortierten Liste geschaut werden muss, ob relativ zu diesem Index alle weiteren Elemente der Größe nach aufsteigen (oder wenigstens gleich lang sind). Das wäre dann "Vater" an Index 2 (des Inputs). Ich werde das aber nicht mehr testen, weil ich stolz auf meine Version bin xD
Wieso hast du denn die Liste neu sortiert? Das war nie Teil der Aufgabenstellung. Da steht lediglich, dass du bestimmten (=prüfen) sollst, ob die Liste bereits aufsteigend der Zeichenkettenlänge sortiert ist.
Aus Effizienzgründen kannst du dies direkt in der for-Schleife prüfen, in der du auch die Elemente der Liste hinzufügst.
Das geht bspw. wie folgt:
for (int i = 0; i < 10; i++) {
list.add(read.nextLine());
if (i > 0) {
if (list.get(i).length() < list.get(i-1).length()) {
System.out.println(i);
break;
}
}
}
Also die Aufgabe "R oder L" enthält in der Musterlösung nur kleinbuchstaben...da aber ohne musterlösung Großbuchstaben gegeben sind muss man die wörter erst mal in kleinschreibweise oder großscheibweise umwandeln...auch wird "contains" verwendet in der Musterlösung, was vorher gar nicht erklärt wurde.
True, das ist ein Fehler imho! Man sollte die einzelnen Strings lowercasen vor der contains abfrage....das geschieht in der Solution nicht, da hier wie durch ein Wunder nur noch kleinbuchstaben im Array sind....
in R oder L habt ihr einfach die Wörter in der Lösung auf lower Case geändert. Das vereinfacht die Dinge. Ansonsten hätte man noch ein Problem für "R" und "L" finden müssen (oder irgendwie die toLowerCase() Funktion integrieren, daran bin ich leider gescheitert).
GO TO FULL VERSION