Gleiche Buchstaben Aufage

Diskutiere Gleiche Buchstaben Aufage im Allgemeine Java-Themen Bereich.
P

parrot

Hallo Leute ich weiß nicht wie ich anfangen kann.

Realisieren Sie eine Klasse GleicheBuchstaben mit einer statischen Methode public static
String gibLaengstesKonstantesStueck(String), die das längste Teilwort der übergebenen
Zeichenkette liefert, in dem alle Zeichen gleich sind. Gibt es mehrere solche Teilwörter, die gleich
lang sind, soll die Methode das erste davon liefern.
 
J

JustNobody

Fang immer damit an dir zu überlegen, wie Du vorgehen würdest. Dir wird eine Zeichenkette gegeben und du sollst nun genau diese Thematik manuell heraus finden.
Wie gehst du vor?
 
T

temi

Hallo Leute ich weiß nicht wie ich anfangen kann.
Ich helfe dir mal mit dem Anfang
Java:
public static String gibLaengstesKonstantesStueck(String s) {
    // hier kommt jetzt dein Code rein
}
Bevor du jetzt anfängst deinen Code zu schreiben, mach das was @JustNobody dir geraten hat: Überlege dir erst mal, ohne irgendwelchen Code, wie du das manuell, z.B. auf einem Stück Papier machen würdest.
 
P

parrot

Ich helfe dir mal mit dem Anfang
Java:
public static String gibLaengstesKonstantesStueck(String s) {
    // hier kommt jetzt dein Code rein
}
Bevor du jetzt anfängst deinen Code zu schreiben, mach das was @JustNobody dir geraten hat: Überlege dir erst mal, ohne irgendwelchen Code, wie du das manuell, z.B. auf einem Stück Papier machen würdest.
Danke.Aber das hatte ich schon.
 
P

parrot

Fang immer damit an dir zu überlegen, wie Du vorgehen würdest. Dir wird eine Zeichenkette gegeben und du sollst nun genau diese Thematik manuell heraus finden.
Wie gehst du vor?
Danke für deine Antwort. ich hab mir die Zeichenkette "Ananas" genommen. Ich weiss jetzt nicht ob das längste Teilwort der übergebenen Zeichenkette sich selbst ist.
 
T

temi

Danke für deine Antwort. ich hab mir die Zeichenkette "Ananas" genommen. Ich weiss jetzt nicht ob das längste Teilwort der übergebenen Zeichenkette sich selbst ist.
Also ich verstehe das so, dass du gleiche Buchstaben hintereinander suchen sollst. Bei "Ananas" wäre demnach die Lösung "A".
 
J

JustNobody

Also Du sollst in Worten beschreiben, wie Du vorgehst. Da bringt so eine leere for Schleife irgendwie nichts.

Daher noch einmal ganz deutlich: Vergiss jeglichen Java Code! Umschreibe in Worten, wie Du bei einem gegebenen Wort vorgehst.

Also Du kriegst einen Zettel mit: "aabcdddeffaaacee"

Wie gehst du vor um die Lösung zu finden? Und was wäre hier die Lösung?
 
P

parrot

Also Du sollst in Worten beschreiben, wie Du vorgehst. Da bringt so eine leere for Schleife irgendwie nichts.

Daher noch einmal ganz deutlich: Vergiss jeglichen Java Code! Umschreibe in Worten, wie Du bei einem gegebenen Wort vorgehst.

Also Du kriegst einen Zettel mit: "aabcdddeffaaacee"

Wie gehst du vor um die Lösung zu finden? Und was wäre hier die Lösung?
Ich würde erstmal gucken welche Zeichen, die hintereinander gleich sind. Danach zähle ich die und gebe dann das Teilwort zurück.

Hier ist ""aaa" das Ergebnis oder.
 
J

JustNobody

Realisieren Sie eine Klasse GleicheBuchstaben mit einer statischen Methode public static
String gibLaengstesKonstantesStueck(String), die das längste Teilwort der übergebenen
Zeichenkette liefert, in dem alle Zeichen gleich sind. Gibt es mehrere solche Teilwörter, die gleich
lang sind, soll die Methode das erste davon liefern.
Bei der Definition ist "aaa" nicht das Ergebnis bei "aabcdddeffaaacee". Das erste Teilwort der Länge 3 ist "ddd".

Und Du solltest versuchen möglichst exakt zu sein bei der Beschreibung, was Du machst.

Ich gebe mal einen Anfang vor:
- Ich nehme das erste Zeichen und merke es mir mit Zähler = 1. Teilstring = Zeichen. Rest ist Zeichenkette ohne erstes Zeichen.
- Solange das nächste Zeichen gleich dem gemerkten Zeichen ist, gehe ich ein Zeichen weiter und erhöhe den Zähler um 1, hänge da Zeichen an den Teilstring und entferne das erste Zeichen vom Rest.
- Ist das nächste Zeichen nicht gleich dem gemerkten Zeichen habe ich einen Teilstring mit der Länge vom Zähler gefunden.

Ausführung sähe also dann auf einem Zettel so aus:
-> "aabcdddeffaaacee" ist der Anfang. Das erste Zeichen nehme ich und merke es mir: gemerkt = 'a'; Zähler = 1; Teilstring = "a", Rest: "abcdddeffaaacee"
-> nächstes zeichen ist 'a' also: gemerkt='a'; Zähler = 2; Teilstring= "aa"; Rest="bcdddeffaaacee"
-> nächstes Zeichen ist 'b', also: Teilstring "aa" mit Länge 2 gefunden!

Wie geht es weiter? Was muss man denn weiter machen?
 
P

parrot

Bei der Definition ist "aaa" nicht das Ergebnis bei "aabcdddeffaaacee". Das erste Teilwort der Länge 3 ist "ddd".

Und Du solltest versuchen möglichst exakt zu sein bei der Beschreibung, was Du machst.

Ich gebe mal einen Anfang vor:
- Ich nehme das erste Zeichen und merke es mir mit Zähler = 1. Teilstring = Zeichen. Rest ist Zeichenkette ohne erstes Zeichen.
- Solange das nächste Zeichen gleich dem gemerkten Zeichen ist, gehe ich ein Zeichen weiter und erhöhe den Zähler um 1, hänge da Zeichen an den Teilstring und entferne das erste Zeichen vom Rest.
- Ist das nächste Zeichen nicht gleich dem gemerkten Zeichen habe ich einen Teilstring mit der Länge vom Zähler gefunden.

Ausführung sähe also dann auf einem Zettel so aus:
-> "aabcdddeffaaacee" ist der Anfang. Das erste Zeichen nehme ich und merke es mir: gemerkt = 'a'; Zähler = 1; Teilstring = "a", Rest: "abcdddeffaaacee"
-> nächstes zeichen ist 'a' also: gemerkt='a'; Zähler = 2; Teilstring= "aa"; Rest="bcdddeffaaacee"
-> nächstes Zeichen ist 'b', also: Teilstring "aa" mit Länge 2 gefunden!

Wie geht es weiter? Was muss man denn weiter machen?
-> Teilstring "aa" und länge 2 merken und mit dem nächsten Zeichen "b" vom Anfang wiederholen.
 
J

JustNobody

-> also und so weiter bis Ende des gegebenen Wort. Und schließlich das gemerkte Zeichen mit der größten Länge zurückgeben.
Wie willst Du den das gemerkte Zeichen mit der größten Länge zurückgeben? Was genau musst Du machen? Was musst Du dir denn dann merken und immer machen?
 
J

JustNobody

While schleife ist eine Implementierung. Derzeit implementieren wir nichts. Wir wollen erst einmal eine umgangssprachliche Lösung....

Dazu kann ich Dir nur empfehlen sehr genau das Beispiel auf einem Zettel durchzuspielen....
Du willst die Schritte, die ich für die ersten "a" gemacht habe, erneut durchführen: Dann kommst Du auf "b" als Teilstring und Rest "cdddeffaaacee"
Was ist denn da dann evtl. wichtig? Machst Du da irgendwas? Hast Du Dir irgendwas aufgeschrieben / gemerkt?
(Wichtige Regel: DU merkst Dir gar nichts. Wenn Du etwas gemerkt haben willst, dann musst du dafür auf dem Zettel einen Platz markieren und da etwas aufschreiben. Das kannst Du dann auch später durchstreichen und was anderes dafür hinschreiben. Aber Du selbst spielst ganz dummes Mäuschen, das nur auf einem Zettel mit einem Stift etwas schmieren kann und nur ganz einfache Dinge auf dem Zettel vergleichen kann ....)
 
P

parrot

gemerktZählerTeilstringRest
'a' 2 "aa" "bcdddeffaaacee"
'b' 1 "b" "cdddeffaaacee"
'c' 1 "c" "dddeffaaacee"
'd' 3 "ddd" "effaaacee"
'e' 1 "e" "ffaaacee"
'f' 2 "ff" "aaacee"
'a' 3 "aaa" "cee"
'c' 1 "c" "ee"
'e' 2 "ee" ""

Wie ich es verstehe, muss ich mir die erste 3 mit "ddd" merken und zurückgeben.
 
J

JustNobody

Was dich doch interessiert ist der größte Teilstring.

Also solltest Du den größten Teilstring, den Du bisher gefunden hast, merken. Und immer wenn Du einen neuen Teilstring hast prüfen, ob dieser größer ist ....

Wie klingt das?
 
P

parrot

Was dich doch interessiert ist der größte Teilstring.

Also solltest Du den größten Teilstring, den Du bisher gefunden hast, merken. Und immer wenn Du einen neuen Teilstring hast prüfen, ob dieser größer ist ....

Wie klingt das?
ja genau. so habe ich auch verstanden. Es klingt nach rekursion.
 
J

JustNobody

Rekursion ist eine Möglichkeit. Das muss aber nicht sein. Bei der Umsetzung ist es so, dass eine Rekursion immer in eine iterative Lösung umgewandelt werden kann. So ist hier eine While Schleife denkbar, die so lange läuft, wie in dem Rest-String noch Zeichen enthalten sind.
Oder wenn man die gegebene Zeichenkette nimmt und in ein Array von Zeichen umwandelt, dann wäre eine einfache Schleife über dieses Array denkbar.
Daher: die konkrete Umsetzung ist da noch nicht festgelegt.
 
Thema: 

Gleiche Buchstaben Aufage

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben