2016-02-29 62 views
0

迴文是一個單詞,短語,數字或符號或元素的其他序列,其含義可以用正向或反向的相同方式解釋。着名的例子包括「愛茉莉,羅姆人」,「一個男人,一個計劃,一條運河:巴拿馬」和「尼克松」中的「不'x'」。 - 維基百科確定給定字符串是否是有效迴文。 JS

我們的目標是確定給定的字符串是否是有效的迴文。

測試用例:

Test.assertEquals(palindrome("Amore, Roma"), true) 
Test.assertEquals(palindrome("A man, a plan, a canal: Panama"), true) 
Test.assertEquals(palindrome("No 'x' in 'Nixon'"), true) 
Test.assertEquals(palindrome("Abba Zabba, you're my only friend"), false) 

我迄今爲止代碼:

function palindrome(string) { 
    var str = string.toLowerCase().replace(/[^a-z]+/g,""); 
    var rev= str.split("").reverse().join(""); 

    if (string == rev) { 
     return true; 
    } else { 
     return false; 
    } 
} 

顯然join是不確定的,但我不明白爲什麼?

+0

你得到的具體錯誤是什麼? – Hamms

+4

您需要檢查'str == rev',並且您可以通過僅返回'str == rev'來簡化代碼,而不需要'if'' else' – jcubic

+0

您可以給出它不起作用的具體示例嗎? –

回答

0

我想你的例子有以下變化和它的作品在OSX 10.9:

function palindrome(string) { 
    var str = string.toLowerCase().replace(/[^a-z]/g, ""); 

    var rev = str.split("").reverse().join(""); 

    return (str == rev); 
} 

它出現在陣列join()方法已自1.1版的JavaScript的一部分 - 這兩個特定的錯誤信息和一些你的環境描述應該有助於解決這個問題。

相關問題