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

Chương trình đếm số nguyên khác nhau trong chuỗi bằng Python

Cho chuỗi alphanumeric s. Thay mọi ký tự không phải chữ số bằng khoảng trắng, tách lấy các số nguyên. Đếm số giá trị nguyên khác nhau (bỏ qua số 0 dẫn đầu).

Ví dụ: s = "ab12fg012th5er67" → các số: "12", "012", "5", "67". Giá trị nguyên: 12, 12, 5, 67 → 3 giá trị khác nhau (12, 5, 67).

Thuật toán giải quyết

  • Duyệt chuỗi, gom nhóm chữ số liên tiếp thành chuỗi k.
  • Gặp ký tự không phải chữ số: nếu k không rỗng, chuyển int(k) thêm vào danh sách nums, reset k.
  • Cuối chuỗi: nếu k không rỗng, thêm int(k).
  • Trả về len(set(nums)).

Ví dụ triển khai

def solve(s):
    nums = []
    k = ""
    for i in range(len(s)):
        if ord(s[i]) > 47 and ord(s[i]) < 58:
            k += s[i]
        else:
            if k != "":
                nums.append(int(k))
                k = ""
    if k != "":
        nums.append(int(k))
    return len(set(nums))

s = "ab12fg012th5er67"
print(solve(s))

Đầu vào

"ab12fg012th5er67"

Đầu ra

3