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)。我們基本上使用了一些內建方法來解決這個問題。
廣告