একটি অ্যালফানিউমেরিক স্ট্রিং s দেওয়া আছে (ডিজিট ০-৯ এবং লোয়ারকেস লেটার)। স্ট্রিং-এ থাকা সব সংখ্যার যোগফল বের করুন। কনsekutিভ ডিজিটগুলোকে একটা সংখ্যা मानব।
উদাহরণ
s = "hello25world63power86" → আউটপুট: 174
25 + 63 + 86 = 174
এলগরিদম (O(n))
ret := 0, curr := 0- প্রতিটি ক্যারেক্টার
chইনs:- যদি ডিজিট:
curr = 10*curr + int(ch) - অন্যথায়:
ret += curr, curr := 0
- যদি ডিজিট:
ret + currরিটার্ন করুন।
পাইথন কোড
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)) # আউটপুট: 174
ইনপুট / আউটপুট
"hello25world63power86" 174