JavaScript迴文串查詢函式


本題的目標是建立一個JavaScript函式來判斷給定的字串是否為迴文串。要解決這個問題,首先需要簡單地理解問題。

理解題意

輸入一個字串,我們的主要目標是檢查該字串是否為迴文串。如果是迴文串,則返回true;否則返回false。

什麼是迴文?

題目中用到了“迴文”這個詞!讓我們先理解這個詞的意思。迴文是指反轉後看起來相同的字串。例如,字串“MADAM”,反轉後仍然是“MADAM”,與輸入字串相同。這就是所謂的迴文。

問題的邏輯

我們將建立一個函式來完成這項任務。函式的輸入是一個字串。我們需要檢查該字串是否為迴文串。首先,我們將字串轉換為小寫,並刪除字串中的所有其他字元以獲得正確的輸出。然後,我們將使用JavaScript的reverse方法遍歷字串,並檢查該字串是否與輸入字串相同。如果這兩個字串相同,我們將返回true,否則返回false。此函式指示該字串是否為迴文串。

演算法

步驟1 - 宣告一個名為isPalindrome的函式,該函式使用字串引數。

步驟2 - 將給定的字串轉換為小寫以獲得所需的結果。並刪除字串中的多餘字元和空格。

步驟3 - 使用reverse函式反轉字串。

步驟4 - 檢查兩個字串是否相同。

步驟5 - 返回true或false結果。

演算法程式碼

function isPalindrome(str) {
   // convert the string to lowercase and remove non-alphanumeric characters
   str = str.toLowerCase().replace(/[^a-z0-9]/g, '');
    
   // reverse the string and compare with the original
   return str === str.split('').reverse().join('');
}
const str = "Level";
const str1 = "Hello Javascript";
const str2 = "Wow";
console.log(isPalindrome(str))
console.log(isPalindrome(str1))
 
//other way to show the output
const result = isPalindrome(str2);
 
if(result == true){
   console.log(str2, "is palindrome");
} else {
   console.log(str2, "is not Palindrome");
}

複雜度

該函式的時間複雜度為O(n),因為該方法對給定字串中的每個字元都使用常數時間。其中n是字串的長度。程式碼使用的空間複雜度為O(1),因為它以布林值的形式顯示結果。

結論

因此,上述建立的函式可用於查詢給定字串是否為迴文串,時間複雜度為O(n)。我們基本上使用了一些內建方法來解決這個問題。

更新於:2023年5月18日

瀏覽量:136

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告