0
我正在接受freecodecamp挑戰「檢查Palindromes」。編寫一個函數來檢查給定的字符串是否是迴文。這裏是我的代碼:如何使用比較運算符確定字符是字母數字?
function palindrome(str) {
str = str.toLowerCase();
for(var i=0; i<str.length; i++){
if((str[i] > 'z' || str[i] < 'a') && (str[i] < '0' || str[i] > '9')){
str = str.replace(str[i], '');
}
}
for(i=0; i<str.length/2; i++){
if(str[i] != str[str.length-1-i]){
return false;
}
}
return true;
}
但它工作不正常。當我使用replace(/[\W_]/g, '');
:
function palindrome(str) {
str = str.toLowerCase().replace(/[\W_]/g, '');
// for(var i=0; i<str.length; i++){
// if((str[i] > 'z' || str[i] < 'a') && (str[i] < '0' || str[i] > '9')){
// str = str.replace(str[i], '');
// }
// }
for(i=0; i<str.length/2; i++){
if(str[i] != str[str.length-1-i]){
return false;
}
}
return true;
}
功能工作正常。我的第一個方法不正確嗎?
你能給一些示例輸入+輸出 –
是的,你的第一個片段是不正確。它會改變字符串 - 縮短它 - 同時迭代它。 – cartant
@cartant我現在明白了。非常感謝。 –