สมมติว่าเรามีสตริงตัวอักษรและตัวเลขที่มีตัวเลขตั้งแต่ "0" ถึง "9" และตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก เราต้องหาผลรวมของตัวเลขที่มีอยู่ใน s หากตัวเลขเรียงกันให้ถือว่าเป็นตัวเลขเดียว
ดังนั้น หากอินพุตเป็น s ="hello25world63power86" ผลลัพธ์จะเป็น 174 เพราะ 25+63+86 =174
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ret :=0, สกุลเงิน :=0
-
สำหรับแต่ละ ch ใน s ทำ
-
ถ้า ch เป็นตัวเลข แสดงว่า
-
curr :=10 * curr + (ch เป็นจำนวนเต็ม)
-
-
มิฉะนั้น
-
ret :=ret + curr
-
สกุลเงิน :=0
-
-
-
ผลตอบแทนย้อนหลัง + สกุลเงิน
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
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)) อินพุต
"hello25world63power86"
ผลลัพธ์
174