Ihre grundlegende Vorgehensweise ist gesund: Sie brechen die Eingabe in zwei: das erste Wort und den Rest der Zeichenfolge. Aber dann ist die Logik ein wenig verpfuscht.
Ist das erste Wort ist mehr als der gesamte Rest des Strings, sollten Sie nur first
zurückkehren, nicht longestWord(first)
(obwohl, tun Sie diesen Fall behandeln. longestWord
werden feststellen, dass das Wort nicht geteilt werden kann und es nur zurückkehren Es ist sinnlos aber).
Zweitens, wenn das nicht der Fall ist, können Sie nicht davon ausgehen, dass das erste Wort nicht das längste Wort ist. Sie müssen den Rückgabewert longestWord(rest)
erfassen und dann die Länge dieses Wortes mit der Länge first
vergleichen. Wenn dieses Wort länger ist, dann gib es zurück. Andernfalls geben Sie first
zurück.
Die Essenz von "teile und herrsche" durch Rekursion ist, dass du einige kleinere Versionen des Problems löse und dann diese Ergebnisse integrierst. Vergiss diesen zweiten Teil nicht. Hierbei handelt es sich nicht um eine binäre Suchbaumsuche, bei der die Daten so organisiert sind, dass Sie nur auf die eine oder andere Hälfte des Speicherplatzes rekurrieren können, um die Antwort zu finden. Du weißt nicht, wo das längste Wort sein könnte.
Dies ist keine Frage. Bitte finde Bits, über die du verwirrt bist, und formuliere sie als Fragen. Denken Sie daran, dass SO keine Seite ist, die Hausaufgaben für Sie löst. – SCdF
Willkommen bei StackOverflow. Ist das eine Hausaufgabenfrage? Wenn ja, sollten Sie das Hausaufgaben-Tag hinzufügen. Haben Sie versucht, den Debugger zu verwenden, um durch den Code zu gehen, um zu sehen, was nicht wie erwartet funktioniert? Einen nicht funktionierenden Code zu posten und zu sagen: "Bitte korrigieren Sie, was auch immer falsch ist" ist keine geeignete Frage für diese Site. Bitte nehmen Sie sich ein paar Minuten Zeit, um die [FAQ] (http://stackoverflow.com/faq) zu lesen, um mehr darüber zu erfahren, wie Sie hier Fragen stellen können, und welche Fragen (und nicht) zu stellen sind Hier. Vielen Dank. :) –
Muss es rekursiv sein? oder ist eine Schleife akzeptabel? – kasavbere