>  기사  >  백엔드 개발  >  변환 후 문자열의 자릿수 합계

변환 후 문자열의 자릿수 합계

王林
王林원래의
2024-09-04 06:41:011199검색

Sum of Digits of String After Convert

1945년. 변환 후 문자열의 자릿수 합계

난이도: 쉬움

주제: 문자열, 시뮬레이션

영문 소문자와 정수 k로 구성된 문자열 s가 주어졌습니다.

먼저 각 문자를 알파벳 위치로 바꿔서 s를 정수로 변환합니다(예: 'a'를 1로, 'b'를 2로, ..., 'z'를 26). 그런 다음 정수를 자릿수의 합으로 바꿔서 변환하세요. k 변환 작업을 총 반복합니다.

예를 들어, s = "zbax"이고 k = 2인 경우 다음 연산을 통해 결과 정수는 8이 됩니다.

  • 변환: "zbax" ➝ "(26)(2)(1)(24)" ➝ "262124" ➝ 262124
  • 변환 #1: 262124 ➝ 2 + 6 + 2 + 1 + 2 + 4 ➝ 17
  • 변환 #2: 17 ➝ 1 + 7 ➝ 8

위에 설명된 작업을 수행한 후 결과 정수를 반환합니다.

예 1:

  • 입력: s = "iiii", k = 1
  • 출력: 36
  • 설명: 작업은 다음과 같습니다.
    • 변환: "iiii" ➝ "(9)(9)(9)(9)" ➝ "9999" ➝ 9999
    • 변환 #1: 9999 ➝ 9 + 9 + 9 + 9 ➝ 36
    • 따라서 결과 정수는 36입니다.

예 2:

  • 입력: s = "leetcode", k = 2
  • 출력: 6
  • 설명: 작업은 다음과 같습니다.
    • 변환: "leetcode" ➝ "(12)(5)(5)(20)(3)(15)(4)(5)" ➝ "12552031545" ➝ 12552031545
    • 변환 #1: 12552031545 ➝ 1 + 2 + 5 + 5 + 2 + 0 + 3 + 1 + 5 + 4 + 5 ➝ 33
    • 변환 #2: 33 ➝ 3 + 3 ➝ 6
    • 따라서 결과 정수는 6입니다.

예 3:

  • 입력: s = "zbax", k = 2
  • 출력: 8

제약조건:

  • 1 <= s.length <= 100
  • 1 <= k <= 10
  • s는 영문 소문자로 구성됩니다.

힌트:

  1. 먼저 첫 번째 변환 후 값은 최대 100 * 10이 되며 그다지 많지 않습니다
  2. 첫 번째 변환 후 무차별 대입으로 나머지 변환을 수행할 수 있습니다

해결책:

해결책은 두 가지 주요 단계로 나눌 수 있습니다.

  1. 문자열 s를 정수로 변환:

    • 문자열의 각 문자는 알파벳의 해당 위치로 대체됩니다(예: 'a' -> 1, 'b' -> 2, ..., 'z' -> 26).
    • 이 모든 숫자를 연결하여 큰 정수를 만듭니다.
  2. 숫자를 k번 더하여 정수 변환:

    • 각 변환에 대해 현재 숫자의 모든 자릿수를 더합니다.
    • 이 변환 과정을 k번 반복합니다.

이 솔루션을 PHP로 구현해 보겠습니다: 1945. 변환 후 문자열의 자릿수 합계






설명:

  1. 문자열 변환:

    • 문자열 s의 각 문자를 반복하고 ord($s[$i]) - ord('a') + 1을 사용하여 해당 알파벳 위치를 계산합니다.
    • 이러한 값은 연결되어 숫자를 나타내는 큰 문자열 numStr을 형성합니다.
  2. 숫자 변형:

    • k번 반복하여 매번 현재 numStr의 숫자를 합산합니다.
    • 이 합산 연산의 결과는 추가 변환이 가능하도록 numStr에 문자열로 다시 저장됩니다.
    • k개의 변환 후에 최종 정수 값을 반환합니다.

테스트 케이스:

  • k = 1인 "iiii"는 "9999"로 변환되고 합은 36이 되며, k=1이므로 최종 결과는 36입니다.
  • k = 2인 "leetcode"는 "12552031545"로 변환되고 첫 번째 변환에서는 합이 33이 되고 두 번째 변환에서는 6이 되어 6이 됩니다.
  • k = 2인 "zbax"는 "262124"로 변환되고 합은 첫 번째 변환에서 17이 되고 두 번째 변환에서는 8이 되어 8이 됩니다.

이 솔루션은 제약 조건을 고려할 때 효율적이며 제공된 제한 내에서 잘 작동합니다.

연락처 링크

이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!

이렇게 더 유용한 콘텐츠를 원하시면 저를 팔로우해주세요.

  • 링크드인
  • 깃허브

위 내용은 변환 후 문자열의 자릿수 합계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.