Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หาจำนวนที่มีหลักคู่ใน Python


ให้ลิสต์ตัวเลข ต้องนับจำนวนที่มีจำนวนหลัก (digit count) เป็นเลขคู่

ตัวอย่าง: [12, 345, 2, 6, 7896] ผลลัพธ์ = 2 เพราะ 12 (2 หลัก) และ 7896 (4 หลัก) เป็นเลขคู่

ขั้นตอนการแก้ปัญหา

  1. แปลงแต่ละจำนวนในลิสต์เป็นสตริง
  2. ถ้าความยาวสตริงเป็นเลขคู่ ให้เพิ่มตัวนับ
  3. คืนค่าตัวนับ

ตัวอย่างโค้ด

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])