สมมติว่าเรามีสตริงตัวอักษรและตัวเลขที่มีตัวเลขตั้งแต่ "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