Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Đếm Số Có Chữ Số Chẵn Trong Python

Cho một danh sách số nguyên. Đếm số lượng số có số chữ số là số chẵn. Ví dụ: [12, 345, 2, 6, 7896] → kết quả 2 (12 có 2 chữ số, 7896 có 4 chữ số).

Thuật toán

  1. Chuyển mỗi số thành chuỗi
  2. Kiểm tra độ dài chuỗi: nếu chẵn thì tăng đếm
  3. Trả về tổng đếm

Ví dụ (Python)

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]))  # Output: 2

Cách khác (không dùng string)

import math

def findNumbers(nums):
    count = 0
    for num in nums:
        if num == 0:
            digits = 1
        else:
            digits = int(math.log10(abs(num))) + 1
        if digits % 2 == 0:
            count += 1
    return count

Độ phức tạp

  • Thời gian: O(n * d) (d = số chữ số trung bình) hoặc O(n) với log10
  • Không gian: O(1) (không tính input)

Đầu vào / Đầu ra

Input:  [12, 345, 2, 6, 7897]
Output: 2