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 統計偶數內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
1. html5 - angularjs中外部模版加載無法使用2. java - 安卓電視盒子取得了root權限但是不能安裝第三方應用,請問該怎么辦?3. 我的Apache卡在這里不動了怎么辦?4. css3 - 請問一下在移動端CSS布局布局中通常需要用到哪些元素,屬性?5. 想寫一個python分析統計apache 日志文件的腳本6. javascript - js 寫一個正則 提取文本中的數據7. 老哥們求助啊8. javascript - [WDS] Disconnected! 一直重復出現。9. javascript - vue-router怎么不能實現跳轉呢10. python - 模擬滑動驗證碼,有源碼,求解
