Cho chuỗi s chứa chữ số 0-9 và chữ cái thường. Tìm tổng các số xuất hiện trong chuỗi. Các chữ số liên tiếp được gộp thành một số.
Ví dụ: → kết quả (25+63+86=174).
Thuật toán giải quyết (O(n))
- Khởi tạo
(tổng),(số đang xây dựng) - Duyệt từng ký tự
:- Nếu là chữ số:
- Ngược lại:
- Nếu là chữ số:
- Trả về
(cộng số cuối nếu chuỗi kết thúc bằng số)
Ví dụ minh họa
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