首頁  >  文章  >  後端開發  >  轉換後字串的數字總和

轉換後字串的數字總和

王林
王林原創
2024-09-04 06:41:011192瀏覽

Sum of Digits of String After Convert

1945 年。轉換後字串的數字總和

難度:簡單

主題:字串,模擬

給你一個由小寫英文字母組成的字串 s 和一個整數 k。

首先, 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
  • 1
  • s 由小寫英文字母組成。

提示:

  1. 首先,我們要注意,第一次變換後的值最多為 100 * 10,這個值並不多
  2. 第一個變換之後,我們可以透過暴力來完成其餘的變換

解:

我們可以將解決方案分為兩個主要步驟:

  1. 將字串 s 轉換為整數:

    • 字串中的每個字元都會替換為字母表中對應的位置(例如,'a' -> 1、'b' -> 2、...、'z' -> 26)。
    • 將所有這些數字連接起來形成一個大整數。
  2. 透過整數的數字相加 k 次來轉換整數:

    • 對於每個變換,將目前數字的所有數字相加。
    • 重複此轉換過程 k 次。

讓我們用 PHP 實作這個解:1945。轉換後字串的數字總和

<?php
function getLucky($s, $k) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Test cases
echo getLucky("iiii", 1) . "\n"; // Output: 36
echo getLucky("leetcode", 2) . "\n"; // Output: 6
echo getLucky("zbax", 2) . "\n"; // Output: 8
?>

解釋:

  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 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!

如果您想要更多類似的有用內容,請隨時關注我:

  • 領英
  • GitHub

以上是轉換後字串的數字總和的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn