38 外观数列(中等)

简介:

image-20221031192750532

解题思路:从第一个一次遍历统计每个字符出现的次数以及当前字符,然后将其赋值给变量,最终将变量返回。提供C++和python的官方代码

#
# @lc app=leetcode.cn id=38 lang=python3
#
# [38] 外观数列
#

# @lc code=start
class Solution:
    def countAndSay(self, n: int) -> str:
        prev = '1'
        for i in range(n-1):
            curr = ""
            pos = 0
            start = 0

            while pos < len(prev):
                while pos < len(prev) and prev[pos] == prev[start]:
                    pos += 1
                curr += str(pos-start)+prev[start]
                start = pos
            prev = curr
        return prev

# @lc code=end
class Solution {
public:
    string countAndSay(int n) {
        string prev="1";
        for (int i=2;i<=n;++i){
            string curr="";
            int start=0;
            int pos=0;

            while(pos<prev.size()){
                while (pos<prev.size()&&prev[pos]==prev[start]){
                    pos++;
                }
                curr+=to_string(pos-start)+prev[start];
                start=pos;
            }
            prev=curr;
        }
        return prev;

    }
};
相关文章
|
3月前
Leetcode第38题(外观数列)
LeetCode第38题要求生成外观数列的第n项,该数列从数字1开始,每一项都是对前一项的描述,例如第1项是"1",第2项是"11",第3项是"21",以此类推。
39 0
|
8月前
|
人工智能
力扣100114. 元素和最小的山形三元组 II(中等)
力扣100114. 元素和最小的山形三元组 II(中等)
|
8月前
【错题集-编程题】删除相邻数字的最大分数(动态规划 - 线性 dp)
【错题集-编程题】删除相邻数字的最大分数(动态规划 - 线性 dp)
|
8月前
|
测试技术
【深度优先搜索】【组合数学】【动态规划】1467.两个盒子中球的颜色数相同的概率
【深度优先搜索】【组合数学】【动态规划】1467.两个盒子中球的颜色数相同的概率
|
8月前
|
C++ Java 定位技术
C/C++每日一练(20230420) 存在重复元素II、外观数列、最优路线
C/C++每日一练(20230420) 存在重复元素II、外观数列、最优路线
124 0
C/C++每日一练(20230420) 存在重复元素II、外观数列、最优路线
|
8月前
leetcode-38:外观数列
leetcode-38:外观数列
54 0
|
8月前
|
算法
【LeetCode】31. 下一个排列【中等】
【LeetCode】31. 下一个排列【中等】
|
算法 安全 Swift
LeetCode - #38 外观数列
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
LeetCode - #38 外观数列
【最优方案】合唱队形
【最优方案】合唱队形
206 0
|
存储 Python
LeetCode 38. 外观数列
给定一个正整数 n ,输出外观数列的第 n 项。
105 0

热门文章

最新文章