1. 程式人生 > 程式設計 >Python 統計位數為偶數的數字的程式碼

Python 統計位數為偶數的數字的程式碼

問題描述

給出一個整數陣列 nums,請返回其中位數為偶數的數字的個數。

示例 1:

輸入:nums = [12,345,2,6,7896]

輸出:2

解釋:

12 是 2 位數字(位數為偶數)

345 是 3 位數字(位數為奇數)

2 是 1 位數字(位數為奇數)

6 是 1 位數字 位數為奇數)

7896 是 4 位數字(位數為偶數)

因此只有 12 和 7896 是位數為偶數的數字

示例 2:

輸入:nums = [555,901,482,1771]

輸出:1

解釋:

只有 1771 是位數為偶數的數字。

解決方案

首先看到題目中所描述的位數為偶數的數字,這時就要看清楚這個位數是指幾位數的位數還是第幾位的位數了,然後通過觀察後面給的輸出樣例,就可以發現是指的幾位數。那麼接下來就可以開始解決了。既然統計個數,首先想到的就應該是具有遍歷功能的for迴圈了,然後再判斷幾位數,不妨用 len 函式。但是要注意的是它給的列表中的數字是數字型別,自然是沒有 len 的,所以需要用 str 函式先將其轉化為字串型別,然後就可以設定條件來統計為偶數位的個數了。

程式碼示例:

class Solution:
def findNumbers(self,nums: List[int]) -> int:
num = 0
for i in nums:
if len(str(i))%2 == 0:
num += 1
return num

知識點補充:

統計位數為偶數的數字(數學 + 字串)

給你一個整數陣列nums,請你返回其中位數為偶數的數字的個數。

示例 1:

輸入:nums = [12,7896]
輸出:2
解釋:
12 是 2 位數字(位數為偶數)
345 是 3 位數字(位數為奇數)
2 是 1 位數字(位數為奇數)
6 是 1 位數字 位數為奇數)

7896 是 4 位數字(位數為偶數)
因此只有 12 和 7896 是位數為偶數的數字

示例 2:

輸入:nums = [555,1771]
輸出:1
解釋:
只有 1771 是位數為偶數的數字。

提示:

1 <= nums.length <= 500
1 <= nums[i] <= 10^5

思路:

水題,直接轉字串判斷數字長度即可。

時間複雜度:O(NK),N是nums長度,K是max(nums)長度

空間複雜度:O(K)

class Solution(object):
  def findNumbers(self,nums):
    """
    :type nums: List[int]
    :rtype: int
    """
    res = 0
    for num in nums:
      if len(str(num)) % 2 == 0:
        res += 1
    return res

總結

到此這篇關於Python 統計位數為偶數的數字的文章就介紹到這了,更多相關python 統計偶數內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!