Computer >> Máy Tính >  >> Lập trình >> Python

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

Giả sử chúng ta có một chuỗi chữ và số viết thường s. Chúng tôi thay thế mọi ký tự không phải chữ số bằng một khoảng trắng, nhưng bây giờ chúng tôi chỉ còn lại một số số nguyên được phân tách bằng ít nhất một dấu cách. Chúng ta phải tìm số lượng các số nguyên khác nhau sau khi thực hiện các phép toán thay thế trên s. Ở đây, hai số được coi là khác nhau nếu các biểu diễn thập phân của chúng không có bất kỳ số 0 ở đầu nào khác nhau.

Vì vậy, nếu đầu vào là s =​​"ab12fg012th5er67", thì đầu ra sẽ là 3 vì có ít số ["12", "012", "5", "67"] bây giờ là "12" và "012" khác nhau trong chuỗi nhưng giống như số nguyên. Vì vậy, có ba số phân biệt.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nums:=một danh sách mới

  • k:=chuỗi trống

  • đối với tôi trong phạm vi từ 0 đến kích thước của s, thực hiện

    • nếu ASCII của s [i]> 47 và ASCII của s [i] <58, thì

      • k:=k nối s [i]

    • nếu không,

      • nếu k không phải là một chuỗi trống, thì

        • chèn dạng số nguyên của k vào cuối nums

        • k:=chuỗi trống

  • nếu k không phải là một chuỗi trống, thì

    • chèn dạng số nguyên của k vào cuối nums

  • trả về số lượng các phần tử riêng biệt trong nums

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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