LeetCode-38.外觀數列(Count and Say)

2021-02-20 極客算法

38. 外觀數列

給定一個正整數 n(1 ≤ n ≤ 30),輸出外觀數列的第 n 項。

注意:整數序列中的每一項將表示為一個字符串。

「外觀數列」是一個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下:

1.12.113.214.12115.111221

第一項, 是數字1第二項, 描述1st, 有1個1, 寫成11第三項, 描述2nd, 有2個1, 寫成21第四項, 描述3rd, 有1個2 + 1個1, 寫成1211第五項, 描述4th, 有1個1 + 1個2 + 2個1, 寫成111221

示例 1:

示例 2:

輸入: 4輸出: "1211"解釋:當 n = 3 時,序列是 "21",其中我們有 "2" 和 "1" 兩組,"2" 可以讀作 "12",也就是出現頻次 = 1 而 值 = 2;類似 "1" 可以讀作 "11"。所以答案是 "12" 和 "11" 組合在一起,也就是 "1211"。

來源:力扣(LeetCode)

連結:https://leetcode-cn.com/problems/count-and-say/

Link:https://leetcode.com/problems/count-and-say/

模擬法

N個數是對第N - 1個數的外觀描述。

代碼如下:

class Solution:    def countAndSay(self, n: int) -> str:        pre = '1'        ans = pre        for i in range(1, n):            ans = ''            count = 1            char = pre[0]            for c in pre[1:]:                if char == c:                    count += 1                else:                    ans += str(count) + char                    char = c                    count = 1
ans += str(count) + char pre = ans
return ans

--End--

相關焦點

  • LeetCode 圖解 | 38. 外觀數列
    作者:孤磊題目來源於 LeetCode 上第 38 號問題:外觀數列。題目難度為 Easy。題目描述「外觀數列」是一個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。給定一個正整數 n(1 ≤ n ≤ 30),輸出外觀數列的第 n 項。
  • 每天一道leetcode234-回文鍊表
    正當班主任要繼續發話,只聽到角落默默想起來一個聲音:」K2」前言 2018.11.6號打卡明天的題目:https://leetcode-cn.com/problems/remove-linked-list-elements/以後明天的題目提取公布一下哈,因為有些朋友想提前做一下~題目 leetcode234-回文鍊表中文連結:https
  • [LeetCode] 912. Sort an Array 數組排序
    題目給定了每個數字的範圍是 [-50000, 50000],並不是特別大,這裡可以使用記數排序 Count Sort,在 LeetCode 中也有直接利用這個解法的題Sort Colors,建立一個大小為 100001 的數組 count,然後統計 nums 中每個數字出現的個數,然後再從0遍歷到 100000,對於每個遍歷到的數字i,若個數不為0,則加入 count 數組中對應個數的 i-50000
  • leetcode - 可以形成最大正方形的矩形數目
    輸入:rectangles = [[2,3],[3,7],[4,3],[3,7]]輸出:3提示1 <= rectangles.length <= 1000rectangles[i].length == 2出處連結:https://leetcode-cn.com
  • 給你代碼:leetcode隨筆
    /*** @param {number[]} arr* @return {number}*/var findSpecialInteger = function(arr) {let last = arr[0], count = 1;if (arr.length === 1) {return
  • LeetCode刷題:Array系列之Remove Element
    using namespace std;    Solution sol;    vector<int> vec{1, 2, 5, 6, 12, 45, 8, 4, 5, 4};    cout << "Original vector's size is " << vec.size() << endl;    int count
  • LeetCode刷題第三周【數組(簡單)】
    斐波那契數(難度:簡單)Oct.31 題目要求:斐波那契數,通常用 F(n) 表示,形成的序列稱為斐波那契數列。該數列由 0 和 1 開始,後面的每一項數字都是前面兩項數字的和。也就是:F(0) = 0,   F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.給定 N,計算 F(N)。
  • 每天一道leetcode56-合併區間
    正當班主任要繼續發話,只聽到角落默默想起來一個聲音:」K2」前言 2018.11.13號打卡明天的題目:https://leetcode-cn.com/problems/minimum-path-sum/descrip題目 每天一道leetcode56
  • [LeetCode] 923. 3Sum With Multiplicity 三數之和的多種情況
    numCnt.count(k)) continue; if (i == j && j == k) { res += numCnt[i] * (numCnt[i] - 1) * (numCnt[i] - 2) / 6; } else if (i
  • Leucocyte count predicts cardiovascular risk in HFpEF
    The me- dian BMI in the cohort was 32.8 kg/m2 (interquartile range: 27.9–38.4 kg/m2), and the majority of the cohort had hyper- tension (1571, 90%), obesity (1128, 65%), and dyslipidaemia(1236,
  • 英語count for 的一些用法
    英語 count for 是一個常用的詞組,這個詞組經常與little, nothing. Much, something 等連用,表示「重要性」。今天我們通過幾個例句來學習一下這個詞組的用法。1. count for little:不算什麼,無關緊要。
  • leetcode雞蛋掉落問題(egg drop)
    搜索後發現是leetcode上的一道經典面試題~因為過於經典,已經被踢出google面試題庫了(。)那我們就直接看看leetcode上的題目叭!leetcode現在有中文站,看起來更方便了:https://leetcode-cn.com/problems/super-egg-drop/solution/--你將獲得 K 個雞蛋,並可以使用一棟從 1 到 N  共有 N 層樓的建築。每個蛋的功能都是一樣的,如果一個蛋碎了,你就不能再把它掉下去。
  • LeetCode面試系列 第6天:No.9 - 迴文數
    迴文數https://leetcode-cn.com/problems/palindrome-number/題目描述判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
  • leetcode鍊表之回文鍊表
    序本文主要記錄一下leetcode鍊表之回文鍊表題目
  • [LeetCode] 976. Largest Perimeter Triangle 最大周長的三角形
    if (A[i] < A[i - 1] + A[i - 2]) { return A[i] + A[i - 1] + A[i - 2]; } } return 0; }};Github 同步地址:https://github.com/grandyang/leetcode
  • LeetCode-66.加一(Plus One)
    來源:力扣(LeetCode)連結:https://leetcode-cn.com/problems/plus-oneLink:https://leetcode.com/problems/plus-one/模擬加O(N)加後反轉數組分別放入個位,十位,百位...
  • LeetCode數組類知識點&題型總結
    leetcode第一題就是two-sum,對於這類題目,首先看題目要求的時間複雜度和空間複雜度是什麼,其次看有沒有限制條件,如要求不能有重複的子數組或者要求按照升序/降序排列等。1.按start排序2.在前一個區間的end和後一個區間的start找交集例題:252 meeting room[easy](https://leetcode.com/problems/meeting-rooms/)題目理解:給定一個數組,包含每個會議的開始時間和結束時間[[s1,e1],[s2,e2],...]
  • leetcode刷對了麼
    今天,逆行君就帶你從世界觀和方法論兩方面走進「leetcode」 簡單來說,leetcode是一個美國的在線編程網站,它收集了各大公司的經典算法面試題,用戶可以選擇不同的語言進行代碼的在線編寫、編譯和調試。
  • leetcode之羅馬數字轉整數
    序本文主要記錄一下leetcode之羅馬數字轉整數題目給定一個羅馬數字,將其轉換成整數。