e543 - 00401 - Palindromes
題目描述
題目要求判斷給定的字串是否為迴文、鏡像字串或鏡像迴文。鏡像字串是指將字串中的每個字元替換為其鏡像後,字串仍然保持鏡像對稱。鏡像迴文則是同時滿足迴文和鏡像字串的條件。題目提供了一個字元到鏡像字元的映射表。
解題思路
程式碼首先定義了一個 lookupTable,用於儲存字元及其鏡像字元的對應關係。Initialize 函數初始化這個表。Regulate 函數將輸入字串中的 '0' 替換為 'O',因為題目要求將 '0' 和 'O' 視為相同字元。IsMirrored 函數檢查字串是否為鏡像字串,它使用 lookupTable 將字串中的每個字元替換為其鏡像,然後檢查替換後的字串是否與原始字串的鏡像相同。IsPalidrome 函數檢查字串是否為迴文,它比較字串的每個字元與其對應的字元(從字串的末尾開始)。main 函數讀取輸入字串,並根據 IsMirrored 和 IsPalidrome 函數的結果輸出相應的訊息。
複雜度分析
- 時間複雜度: O(n),其中 n 是輸入字串的長度。這是因為
Regulate、IsMirrored和IsPalidrome函數都需要遍歷字串一次。 - 空間複雜度: O(1),因為
lookupTable的大小是固定的,不依賴於輸入字串的長度。