Giả sử chúng ta có một chuỗi chữ số s với các chữ số từ "0" đến "9" và các chữ cái tiếng Anh viết thường. Chúng ta phải tìm tổng các số có trong s. Nếu các chữ số liên tiếp nhau thì coi chúng thành một số duy nhất.
Vì vậy, nếu đầu vào là s ="hello25world63power86", thì đầu ra sẽ là 174 vì 25 + 63 + 86 =174
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
ret:=0, curr:=0
-
đối với mỗi ch trong s, thực hiện
-
nếu ch là một chữ số thì
-
curr:=10 * curr + (ch là số nguyên)
-
-
nếu không,
-
ret:=ret + curr
-
curr:=0
-
-
-
trả về ret + curr
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn
from string import digits def solve(s): ret = 0 curr = 0 for ch in s: if ch in digits: curr = 10 * curr + int(ch) else: ret += curr curr = 0 return ret + curr s = "hello25world63power86" print(solve(s))
Đầu vào
"hello25world63power86"
Đầu ra
174