Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 하나의 영숫자 문자열 안에 있는 숫자의 합을 찾는 프로그램

<시간/>

"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