Leetcode - Easy - 9. Palindrome Number - Javascript

2022年1月16日 星期日

Leetcode - Easy - 9. Palindrome Number - Javascript


9. Palindrome Number

Easy

Given an integer x, return true if x is palindrome integer.

An integer is a palindrome when it reads the same backward as forward.

  • For example, 121 is a palindrome while 123 is not.

 

Example 1:

Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.

Example 2:

Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

 

Constraints:

  • -231 <= x <= 231 - 1



解題方向:
1. 這題主要是要找對稱的數字, 所以要先排除大於 231 與小於 0
2. 再透過 leftIndex 與 rightIndex 從中心點個別往左右找是否數字相同

程式碼 :
/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
    if (x > 2147483647 || x < 0) { return false; }
    
    const stringX = x.toString();
    const stringXLen = stringX.length;
    
    const center =  parseInt(stringXLen/2);
    
    let leftIndex = center - 1;
    let rightIndex = center;
    
    if (stringXLen % 2) {
        rightIndex = center + 1;
    }
    
    let result = true;
    
    while(leftIndex >= 0 && rightIndex <= stringXLen) {
        if (stringX[leftIndex] !== stringX[rightIndex]) {
            result = false;
            break;
        }
        
        leftIndex--;
        rightIndex++;
    }
        
    return result;
};




執行成果:


0 意見 :

張貼留言