Wie man Wörter in einer Zeichenkette umkehrt?

8

Diese Frage wurde bereits von anderen Mitgliedern gestellt / beantwortet, aber mein Fall ist etwas anders.

Problem: Wie man Wörter in einer Zeichenkette umkehrt? Sie können strpos (), strlen (), substr () verwenden, aber nicht andere sehr nützliche Funktionen wie explode (), strrev () usw.

Dies ist im Grunde eine Interviewfrage, also muss ich die Fähigkeit zeigen, Strings zu manipulieren.

Beispiel:

$ string="Ich bin ein Junge"

Antwort:

"I ma a yob"

Unten ist meine Lösung, die mich 2 Tage dauerte (Seufzer), aber es muss eine elegantere Lösung geben. Mein Code sieht sehr lang aus.

Vielen Dank im Voraus!

Meine Absicht:

%Vor%

Code:

%Vor%     
masato-san 04.06.2010, 20:26
quelle

8 Antworten

17
%Vor%     
thetaiko 04.06.2010, 20:36
quelle
2

Hoppla! Miss-lesen Sie die Frage. Hier geht's (Beachten Sie, dass dies auf alle Nicht-Buchstaben-Grenzen und nicht nur auf Leerzeichen aufgeteilt wird. Wenn Sie möchten, dass ein Zeichen nicht geteilt wird, fügen Sie es einfach zu $wordChars hinzu):

%Vor%

Bearbeiten: Jetzt ist es eine einzelne Funktion und speichert den Puffer naiv in umgekehrter Schreibweise.

Edit2: Behandelt nun UTF8-Zeichen (fügen Sie einfach "word" -Zeichen zur Zeichenfolge $wordChars hinzu) ...

    
ircmaxell 04.06.2010 20:37
quelle
1

Ich glaube, der einfachste Weg wäre, Ihre Zeichenkette mit explode () in ein Array einzufügen und dann die Funktion array_reverse () zu verwenden. Natürlich müssen Sie das Array ausgeben. Für weitere Details zu array_reverse () siehe Ссылка

    
Coman Teodor 14.04.2011 20:38
quelle
0

Es hätte viel eleganter sein können, wenn PHP eine konkatenative Syntax verwendet hätte:)

%Vor%     
Tibor 02.06.2012 14:13
quelle
0
%Vor%     
Vishnu Kant Maurya 06.08.2013 06:41
quelle
0
%Vor%     
Vishnu Sharma 17.09.2013 13:00
quelle
0

Meine Antwort ist, die Stringlänge zu zählen, die Buchstaben in ein Array aufzuteilen und dann rückwärts zu loopen. Dies ist auch eine gute Möglichkeit zu überprüfen, ob ein Wort ein Palindrom ist. Dies kann nur für normale Zeichenfolgen und Zahlen verwendet werden.

  

preg_split kann auch in explode () geändert werden.

%Vor%     
Louie Miranda 09.06.2015 02:24
quelle
-1

Ссылка

Bearbeiten: Sie haben gefragt, dass jedes Wort umgekehrt werden soll, aber immer noch in der Reihenfolge "Wort". So etwas könnte besser funktionieren:

%Vor%     
Glen Solsberry 04.06.2010 20:28
quelle

Tags und Links