溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字

發(fā)布時(shí)間:2021-06-04 11:41:04 來(lái)源:億速云 閱讀:518 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Python如何統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

問題描述

給出一個(gè)整數(shù)數(shù)組 nums,請(qǐng)返回其中位數(shù)為偶數(shù)的數(shù)字的個(gè)數(shù)。

示例 1:

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

輸出:2

解釋:

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

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

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

6 是 1 位數(shù)字 位數(shù)為奇數(shù))

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

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

示例 2:

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

輸出:1

解釋:

只有 1771 是位數(shù)為偶數(shù)的數(shù)字。

解決方案

首先看到題目中所描述的位數(shù)為偶數(shù)的數(shù)字,這時(shí)就要看清楚這個(gè)位數(shù)是指幾位數(shù)的位數(shù)還是第幾位的位數(shù)了,然后通過觀察后面給的輸出樣例,就可以發(fā)現(xiàn)是指的幾位數(shù)。那么接下來(lái)就可以開始解決了。既然統(tǒng)計(jì)個(gè)數(shù),首先想到的就應(yīng)該是具有遍歷功能的for循環(huán)了,然后再判斷幾位數(shù),不妨用 len 函數(shù)。但是要注意的是它給的列表中的數(shù)字是數(shù)字類型,自然是沒有 len 的,所以需要用 str 函數(shù)先將其轉(zhuǎn)化為字符串類型,然后就可以設(shè)置條件來(lái)統(tǒng)計(jì)為偶數(shù)位的個(gè)數(shù)了。

代碼示例:

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

知識(shí)點(diǎn)補(bǔ)充:

統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字(數(shù)學(xué) + 字符串)

給你一個(gè)整數(shù)數(shù)組 nums,請(qǐng)你返回其中位數(shù)為 偶數(shù) 的數(shù)字的個(gè)數(shù)。

示例 1:

輸入:nums = [12,345,2,6,7896]
輸出:2
解釋:
12 是 2 位數(shù)字(位數(shù)為偶數(shù)) 
345 是 3 位數(shù)字(位數(shù)為奇數(shù))  
2 是 1 位數(shù)字(位數(shù)為奇數(shù)) 
6 是 1 位數(shù)字 位數(shù)為奇數(shù)) 
7896 是 4 位數(shù)字(位數(shù)為偶數(shù))  
因此只有 12 和 7896 是位數(shù)為偶數(shù)的數(shù)字

示例 2:

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

提示:

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

思路:

水題,直接轉(zhuǎn)字符串判斷數(shù)字長(zhǎng)度即可。

時(shí)間復(fù)雜度:O(NK),N是nums長(zhǎng)度,K是max(nums)長(zhǎng)度

空間復(fù)雜度: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

關(guān)于“Python如何統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI