Okay so Palindrom ist ein Wort, das das gleiche rückwärts geschrieben wird. Was, wenn wir einen Satz nehmen wollen, der auch gleich rückwärts ist? So ist kook
eins. race car
ist ein anderer.Der Versuch, eine Palindrom-Funktion zu erstellen, die Leerzeichen berücksichtigt
Also habe ich eine gemacht, die keine Leerzeichen berücksichtigt.
function isPal(string){
var l = string.length;
for (var i = 0; i < (l/2); ++i) {
if (string.charAt(i) != string.charAt(l - i - 1)){
return false;
}
}
return true;
}
Dies funktioniert gut für Worte.
Jetzt denke ich, schieben Sie die Zeichenfolge in ein Array, und teilen Sie jedes Zeichen in eine eigene Zeichenfolge, entfernen Sie alle Leerzeichen, und führen Sie dann if (string.charAt(i) != string.charAt(string.length - i - 1))
. Also hier ist was ich geschrieben habe, aber scheiterte an ..
function isPalindrome(string){
var arr = [];
arr.push(string.split(''));
for (i = 0; i < arr.length; i++){
if (arr[i] === ' '){
arr.splice(i, 1);
wenn ich arr
zurückkehren, es gibt mir immer noch die Zeichenfolge mit dem Raum in ihm. Wie erreiche ich das? Vielen Dank!
EDIT: verwendet, um die Lösung, aber immer noch falsch immer auf ‚Rennwagen‘ Hier ist, was ich habe:
function isPalindrome(string){
var arr = string.split('');
for (i = 0; i < arr.length; i++){
if (arr[i] === ' '){
arr.splice(i, 1);
} else if (arr[i] != arr[arr.length - i - 1]){
return false;
}
}
return true;
}
, wo mein Fehler ist?
noch falsch bekommen :(hier ist, was ich getan habe ... Funktion isPalindrome (string) { var arr = string. split (''); für (i = 0; i
bikedres
Stellen Sie sich vor, Sie laufen auf "Rennwagen", Ihr Code trifft das "e", bevor es den Raum trifft. Also geht es zum else if und stimmt 'e' mit '' überein und gibt false zurück. Versuchen Sie, Ihren Code auf 'r acecar' laufen zu lassen und es wird wahr zurückgegeben. Es wird funktionieren, solange das Leerzeichen vor der Hälfte der Zeichenfolge liegt. Mein Rat ist, Räume vor der Prüfung auf Palindrome Streifen zu entfernen. Es wurde im Allgemeinen als eine schlechte Idee betrachtet, die Länge eines Arrays (durch das Entfernen von Elementen) in einer Schleife zu ändern, die dieses Array durchläuft. –