leetcode刷题日记-外观数组

题目描述

在这里插入图片描述

解题思路

初始化字符串 init 为 “1”,作为外观数列的第一项。
通过循环迭代生成外观数列的下一项,循环次数为 n-1,因为已经初始化了第一项。
在每次迭代中,通过两个指针 pos 和 start 来遍历当前项 init,pos 指向当前字符,start 指向当前连续字符序列的起始位置。
在内层的两个 while 循环中,pos 从 start 开始向后移动,直到遇到不同的字符或者到达字符串末尾。
每次遇到不同的字符时,将当前连续字符序列的长度(pos - start)和该字符本身(init[start])拼接到 curr 字符串中。
更新 start 为当前 pos 的值,以便下一次计算下一个连续字符序列的长度。
将生成的新字符串 curr 赋值给 init,继续下一轮迭代。
最终返回生成的外观数列第 n 项的字符串表示。

解题代码

class Solution:
def countAndSay(self, n: int) -> str:
init=“1”
for i in range(n-1):
curr=“”
pos=0
start=0
while pos<len(init):
while pos<len(init) and init[pos]==init[start]:
pos+=1
curr+=str(pos-start)+init[start]
start=pos
init=curr
return init

相关推荐

  1. LeetCode每日一.03(外观数列)

    2024-03-26 00:58:09       62 阅读
  2. 算法 | 日记

    2024-03-26 00:58:09       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 00:58:09       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 00:58:09       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 00:58:09       87 阅读
  4. Python语言-面向对象

    2024-03-26 00:58:09       96 阅读

热门阅读

  1. [HITCON 2016]Leaking

    2024-03-26 00:58:09       42 阅读
  2. 我的VSCode配置和常见插件

    2024-03-26 00:58:09       46 阅读
  3. 7-13 验证“哥德巴赫猜想”

    2024-03-26 00:58:09       38 阅读
  4. 网络编程基础

    2024-03-26 00:58:09       36 阅读
  5. 力扣爆刷第104天之CodeTop100五连刷6-10

    2024-03-26 00:58:09       44 阅读
  6. 《苹果 iOS 应用开发与分发的关键问题解析》

    2024-03-26 00:58:09       38 阅读
  7. 1028记忆化搜索和dp**

    2024-03-26 00:58:09       43 阅读
  8. C语言-扫雷游戏的简单实现

    2024-03-26 00:58:09       43 阅读
  9. C++ 模板知识大全

    2024-03-26 00:58:09       39 阅读