JavaScript - 判斷字串是否為迴文(檢查標點符號)


在給定的問題陳述中,我們必須找到該字串是否為迴文,並且該字串還應該包含標點符號,並使用Javascript功能編寫程式碼。

理解問題

眼前的問題是探索如何使用 Javascript 判斷給定的字串是否為迴文。那麼讓我們先看看什麼是迴文。迴文是一個單詞、短語、數字或字母序列,正著讀和反著讀都一樣。例如:“racecar”就是一個迴文字串。

給定問題的邏輯

為了解決給定的問題,我們將首先建立一個函式來查詢給定的字串是否為迴文。為了檢查字串是否為迴文並忽略標點符號,我們可以首先將給定的輸入字串轉換為小寫以忽略大小寫敏感性。之後,我們將使用正則表示式或字串操作方法從給定的字串中刪除所有標點符號和空格。之後,我們將比較更新後的字串及其反轉後的字串。如果它們相同,我們將返回該字串是迴文。

演算法

步驟 1:由於我們必須找出給定的字串是否為迴文。因此,為了完成此任務,我們將建立一個名為 isPalindrome 的函式,在這個函式中,我們將傳遞一個字串引數作為 str。因此,對於此 str,我們將檢查迴文條件。

步驟 2:建立函式後,我們將使用 toLowerCase 方法將給定的字串轉換為小寫,然後將其賦值給名為 lowerCaseStr 的新變數。

步驟 3:現在我們已經將字串轉換為小寫,現在是時候使用正則表示式和字串操作方法從給定的字串中刪除空格和標點符號了。之後,我們將將其賦值給另一個名為 modifiedStr 的變數。

步驟 4:在此步驟中,我們將使用 split、reverse 和 join 方法反轉給定的字串,然後將其賦值給名為 reversedStr 的新變數。

步驟 5:由於我們已經將字串轉換為小寫並反轉了給定的字串。現在,我們將使用 === 運算子比較更新後的字串和反轉後的字串。如果它們相等,我們將返回 true,否則返回 false。

示例

// Function to check for Palindrome
function isPalindrome(str) {
   const lowerCaseStr = str.toLowerCase();
   const modifiedStr = lowerCaseStr.replace(/[\W_]/g, '');
   const reversedStr = modifiedStr.split('').reverse().join('');

   return modifiedStr === reversedStr;
}
const inputString = "A man, a plan, a canal, Panama!";
console.log(isPalindrome(inputString));

輸出

true

複雜度

查詢給定的輸入字串是否為迴文的時效複雜度為 O(n),其中 n 是給定的輸入字串的大小。由於我們使用了正則表示式和字串操作技術,這些技術需要線性時間,並且對字串的修改也需要線性時間。

結論

在給定的任務中,我們學習瞭如何使用 Javascript 檢查字串是否為迴文並忽略標點符號。我們透過將字串轉換為小寫、刪除標點符號和空格來完成此任務。並且透過比較原始字串和反轉後的字串,我們可以確定給定的字串是否為迴文。

更新於:2023年8月14日

瀏覽量 543 次

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.