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 = 0for i in nums:if len(str(i))%2 == 0:num += 1return num
知識點補充:
統計位數為偶數的數字(數學 + 字符串)
給你一個整數數組 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 是位數為偶數的數字。
提示:
1 <= nums.length <= 5001 <= 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 統計偶數內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
