"0"에서 "9"까지의 숫자와 소문자 영어 문자를 포함하는 영숫자 문자열이 있다고 가정합니다. s에 있는 숫자의 합을 찾아야 합니다. 숫자가 연속되면 단일 숫자로 간주하십시오.
따라서 입력이 s ="hello25world63power86"과 같으면 25+63+86 =174
이므로 출력은 174가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
ret :=0, curr :=0
-
s의 각 ch에 대해
-
ch가 숫자이면
-
curr :=10 * curr + (ch는 정수로)
-
-
그렇지 않으면
-
렛 :=렛 + 커
-
커 :=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))
입력
"hello25world63power86"
출력
174