LeetCode 481. 神奇字符串(找规律)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 481. 神奇字符串(找规律)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
神奇的字符串 S 只包含 ‘1’ 和 ‘2’,并遵守以下規則:
字符串 S 是神奇的,因為串聯字符 ‘1’ 和 ‘2’ 的連續出現次數會生成字符串 S 本身。
字符串 S 的前幾個元素如下:S = “1221121221221121122 …”
如果我們將 S 中連續的 1 和 2 進行分組,它將變成:
1 22 11 2 1 22 1 22 11 2 11 22 …
并且每個組中 ‘1’ 或 ‘2’ 的出現次數分別是:
1 2 2 1 1 2 1 2 2 1 2 2 …
你可以看到上面的出現次數就是 S 本身。
給定一個整數 N 作為輸入,返回神奇字符串 S 中前 N 個數字中的 ‘1’ 的數目。
注意:N 不會超過 100,000。
示例: 輸入:6 輸出:3 解釋:神奇字符串 S 的前 6 個元素是 “122112”,它包含三個 1,因此返回 3。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/magical-string
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 找規律
- 初始數字為122,指針i初始為下標2
- 看最后一個數字是2就變成1, 1就變成2
- 個數按照i的內容確定
122:+2個1 (最后一個字符^3) = 12211
12211:+1個2 = 122112
122112:+1個1 = 1221121
1221121:+ 2個2 = 122112122
總結
以上是生活随笔為你收集整理的LeetCode 481. 神奇字符串(找规律)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 496. 下一个更大元
- 下一篇: LeetCode 1138. 字母板上的