ให้ลิสต์ตัวเลข ต้องนับจำนวนที่มีจำนวนหลัก (digit count) เป็นเลขคู่
ตัวอย่าง: [12, 345, 2, 6, 7896] ผลลัพธ์ = 2 เพราะ 12 (2 หลัก) และ 7896 (4 หลัก) เป็นเลขคู่
ขั้นตอนการแก้ปัญหา
- แปลงแต่ละจำนวนในลิสต์เป็นสตริง
- ถ้าความยาวสตริงเป็นเลขคู่ ให้เพิ่มตัวนับ
- คืนค่าตัวนับ
ตัวอย่างโค้ด
class Solution(object):
def findNumbers(self, nums):
str_num = map(str, nums)
count = 0
for s in str_num:
if len(s) % 2 == 0:
count += 1
return count
ob1 = Solution()
print(ob1.findNumbers([12, 345, 2, 6, 7897]))
อินพุต
[12, 345, 2, 6, 7897]
เอาต์พุต
2
วิธีแก้แบบ Pythonic มากขึ้น
def findNumbers(nums):
return sum(1 for n in nums if len(str(n)) % 2 == 0)
# หรือใช้ list comprehension
def findNumbers(nums):
return len([n for n in nums if len(str(n)) % 2 == 0])