1. 程式人生 > >LeetCode 9 迴文數

LeetCode 9 迴文數

題目要求:

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

示例 1:

輸入: 121
輸出: true

示例 2:

輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴文數。

示例 3:

輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。因此它不是一個迴文數。

進階:

你能不將整數轉為字串來解決這個問題嗎?

1.首先我們可以通過將整數轉為字串來解決問題,比較簡單,我們可以對比字串首位和末位是否相同,然後依次遞進,前面的數字向後,後面的數字向前。

C++程式碼1:

class Solution {
public:
    bool isPalindrome(int x) {
        string str = to_string(x);
        for (int i = 0; i < str.length(); i++) {
            if (str[i] != str[str.length() - 1 - i]) {
                return false;
            }
        }
        return true;
    }
};

結果:

雖然通過了,課室beat 2.87%,也太低了吧!!!!

看來轉字串還是不行,果然要按照題目的進階來做,不用轉字串的辦法。

2.首先我們可以通過將整數轉為字串來解決問題,比較簡單,我們可以對比字串首位和末位是否相同,然後依次遞進,前面的數字向後,後面的數字向前。

C++程式碼2:

class Solution {
public:
    bool isPalindrome(int x) {
        if(x<0|| (x!=0 &&x%10==0)) return false;
        int sum=0;
        while(x>sum)
        {
            sum = sum*10+x%10;
            x = x/10;
        }
        return (x==sum)||(x==sum/10);
    }
};

結果:

提升了一些,不過還是偏低啊!!

Python3程式碼:

最後贈送一個彩蛋,python果然簡單實在暴力,適合初學者,一行程式碼解決問題。。。

class Solution:
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        return(str(x)==str(x)[::-1])

結果:

結果也很可觀,beat93.52%。。。

相關推薦

leetcode 9. (java)

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴

[LeetCode]9

 題目描述 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴文

LeetCode 9.

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。

Leetcode 9.(Python3)

9.迴文數 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。

LeetCode 9. Palindrome Number(C語言)

題目描述: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左

LeetCode 9 (Palindrome Number) —— 得到整形的位數及尾數

這裡使用一種較笨的方法,適合初學者理解。 主要的過程就是用取餘操作得到最後一位,用除法操作得到一共有幾位。具體程式如下: class Solution { public: bool isPalindrome(int x) {

LeetCode 9.(Java)

題目描述: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。

leetcode-9.(水仙花

leetcode-9.迴文數(水仙花數) 題意:給定整數,判斷是否是水仙花數(迴文數),返回判斷結果 演算法: 1.判斷負數, 如果是負數直接返回false 2.將整數逐位拆解,用陣列儲存 3.遍歷陣列,若本位與後面對應位不等返回false. Code 1 class Solution

LeetCode 9

題目要求: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121-

Leetcode-9 python3

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例1: 輸入:121 輸出:true 示例2: 輸入:-121 輸出:false 解釋:從左向右讀,為-121。從右向左讀,為121-。因此它不是一個迴文數。

LeetCode】#9(Palindrome Number)

【LeetCode】#9迴文數(Palindrome Number) 題目描述 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: fals

LeetCode題目詳解-9

9.迴文數 題目: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為

LeetCode :C語言 9.

迴文數簡而言之就是對稱的數(負數按題目要求不是),因為上一個題目是反轉整數很自然的就想到了直接反轉之後判斷。 bool isPalindrome(int x) { int out = 0,in = x; int temp; if(x<0)

LeetCode(No.9)--

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴文數。

LeetCode Golang 9.

9. 迴文數 第一種辦法 :itoa 轉換為字串進行處理: package main import ( "strconv" "fmt" ) //判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 // //示例 1: // //輸入

LeetCode9. 結題報告 (C++)

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。示例 1:輸入: 121 輸出: true 示例 2:輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴文數。 示例 3:輸入: 10 輸出: fa

LeetCode9.

題目描述:     判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 演算法思想:轉換為字串,字串再轉置,判斷兩個字串是否相等 class Solution { public boolean isPalindrome(in

9,

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴

LeetCode

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴

【每日leetcode

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解