문자열의 자릿수 계산
s
로 구성된 문자열k
이 제공됩니다.s
의 길이가 k
보다 크면 라운드를 완료할 수 있습니다. 한 라운드에서 다음을 수행합니다.s
문자가 첫 번째 그룹에 있고 다음k
문자가 두 번째 그룹에 있는 식으로 k
크기의 연속적인 그룹k
으로 나눕니다. 마지막 그룹의 크기는 k
보다 작을 수 있습니다. s
의 각 그룹을 모든 숫자의 합계를 나타내는 문자열로 바꿉니다. 예를 들어, "346"
는 "13"
이기 때문에 3 + 4 + 6 = 13
로 대체됩니다. k
보다 크면 1
단계부터 반복합니다. 모든 라운드가 완료된 후
s
를 반환합니다.예 1:
입력: s = "11111222223", k = 3
출력: "135"
설명:
그런 다음 각 그룹의 숫자 합계를 계산합니다: 1 + 1 + 1 = 3, 1 + 1 + 2 = 4, 2 + 2 + 2 = 6, 2 + 3 = 5.
따라서 s는 첫 번째 라운드 이후에 "3"+ "4"+ "6"+ "5"= "3465"가 됩니다.
그런 다음 각 그룹의 숫자 합계를 계산합니다: 3 + 4 + 6 = 13, 5 = 5.
따라서 s는 두 번째 라운드 후에 "13"+ "5"= "135"가 됩니다.
이제 s.length <= k이므로 답으로 "135"를 반환합니다.
예 2:
입력: s = "00000000", k = 3
출력: "000"
설명:
s를 "000", "000", "00"으로 나눕니다.
그런 다음 각 그룹의 숫자 합계를 계산합니다: 0 + 0 + 0 = 0, 0 + 0 + 0 = 0, 0 + 0 = 0.
s는 길이가 k인 "0"+ "0"+ "0"= "000"이 되므로 "000"을 반환합니다.
제약:
1 <= s.length <= 100
2 <= k <= 100
s
는 숫자로만 구성됩니다. 해결책:
class Solution:
def digitSum(self, s: str, k: int) -> str:
while len(s) > k:
nexts = ""
for i in range(0, len(s), k):
nexts += str(sum(int(d) for d in s[i:i+k]))
s = nexts
return s
Reference
이 문제에 관하여(문자열의 자릿수 계산), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/calculate-digit-sum-of-a-string-48dn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)