LintCode 744. Sum of first K even-length Palindrome numbers

LintCode 744. Sum of first K even-length Palindrome numbers

題目描述:

Given a integer k, find the sum of first k even-length palindrome numbers.
Even length here refers to the number of digits of a number is even.

樣例

Given k = 3, return 66 // 11 + 22 + 33 = 66 (Sum of first three even-length palindrome 
numbers)

Given k = 10, return 1496
// 11 + 22 + 33 + 44 + 55 + 66 + 77 + 88 + 99 + 1001 = 1496

簡單翻譯下:

輸入整數k,返回前k個位數長度爲偶數的迴文數的和。

思路:

設f(n)表示第n個滿足條件的數(n >= 1)。f(n)要滿足兩個條件:
1. 迴文數
2. 位數長度爲偶數

可以根據要求,列出f(n)的列表:

f(1) = 11
f(2) = 22
...
f(9) = 99
f(10) = 1001
f(11) = 1111
...
f(99) = 9999
f(100) = 100001
...

可以看出來,第n個數的值,就是將n作爲字符串str,翻轉之後得到revstr,然後將str和revstr拼接,再轉換爲整數,就是所需要的結果。如n=100

f(100) = 100001
str"100"
revstr爲"001"
str + revstr = "100001"
轉換爲整數後,結果爲100001,即f(n)

所以,可以得到java代碼:

    /**
     * @param k:
     * @return: the sum of first k even-length palindrome numbers
     * 設f(n)爲第n個偶數長度的迴文數
     * 則f(1)爲11,f(2)爲22...f(10)爲1001
     * 可以看到規律,f(n)爲將n作爲字符串,翻轉後,兩個串拼起來的數字
     * 參考:
     * http://www.geeksforgeeks.org/sum-first-k-even-length-palindrome-numbers/
     */
    public int sumKEven(int k) {
        int sum = 0;
        for (int i = 0; i <= k; i++) {
            String str = String.valueOf(i);
            String revstr = str + new StringBuilder().append(str).reverse().toString();
            int cur = Integer.parseInt(revstr);
//            System.out.println("i: " + i + ", cur: " + cur);
            sum += cur;
        }
        return sum;
    }

對應的Python3代碼爲:

    def sumKEven(self, k):
        result = 0
        for i in range(1, k + 1):
            # 轉換爲字符串
            str1 = str(i)
            # 翻轉字符串
            revstr1 = str1[::-1]
            # 拼接兩個字符串並轉換爲整數型
            cur = int(str1 + revstr1)
            # print(cur)
            # 添加到結果中
            result = result + cur
        return result

參考:

http://www.geeksforgeeks.org/sum-first-k-even-length-palindrome-numbers/

更多的題目

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章