LeetCode 880. 索引处的解码字符串(找规律)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给定一个编码字符串 S。请你找出 解码字符串 并将其写入磁带。
解码时,从编码字符串中 每次读取一个字符 ,并采取以下步骤:

  • 如果所读的字符是字母,则将该字母写在磁带上。
  • 如果所读的字符是数字(例如 d),则整个当前磁带总共会被重复写 d-1 次

现在,对于给定的编码字符串 S 和索引 K,查找并返回解码字符串中的第 K 个字母。

示例 1:
输入:S = "leet2code3", K = 10
输出:"o"
解释:
解码后的字符串为 "leetleetcodeleetleetcodeleetleetcode"。
字符串中的第 10 个字母是 "o"。示例 2:
输入:S = "ha22", K = 5
输出:"h"
解释:
解码后的字符串为 "hahahaha"。
第 5 个字母是 "h"。示例 3:
输入:S = "a2345678999999999999999", K = 1
输出:"a"
解释:
解码后的字符串为 "a" 重复 8301530446056247680 次。
第 1 个字母是 "a"。提示:
2 <= S.length <= 100
S 只包含小写字母与数字 29 。
S 以字母开头。
1 <= K <= 10^9
题目保证 K 小于或等于解码字符串的长度。
解码后的字符串保证少于 2^63 个字母。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/decoded-string-at-index
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 暴力模拟的方法不可取,字符串会很长,会超时
  • 先计算整个目标串的长度 len,到达K长度后,往回反向遍历
  • 对 K 对 len 取 %,K取%后为 0 且 当前位置为 字母时,返回答案
class Solution {
public:string decodeAtIndex(string S, int K) {long long count = 0, n = S.size(), i = 0;for( ; i < n; ++i){if(isalpha(S[i]))count++;elsecount *= S[i]-'0';if(count >= K)break;}for( ; i >= 0; --i){K = K%count;if(K==0 && isalpha(S[i]))return string(1, S[i]);if(isalpha(S[i]))count--;elsecount /= S[i]-'0';}return "";}
};

0 ms 6.3 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1711. 大餐计数(map计数 + 二分查找)

文章目录1. 题目2. 解题1. 题目 大餐 是指 恰好包含两道不同餐品 的一餐&#xff0c;其美味程度之和等于 2 的幂。 你可以搭配 任意 两道餐品做一顿大餐。 给你一个整数数组 deliciousness &#xff0c;其中 deliciousness[i] 是第 i​​​​​​​​​​​​​​ 道餐品的美…

LeetCode 1710. 卡车上的最大单元数(排序,模拟)

文章目录1. 题目2. 解题1. 题目 请你将一些箱子装在 一辆卡车 上。给你一个二维数组 boxTypes &#xff0c;其中 boxTypes[i] [numberOfBoxesi, numberOfUnitsPerBoxi] &#xff1a; numberOfBoxesi 是类型 i 的箱子的数量。numberOfUnitsPerBoxi 是类型 i 每个箱子可以装载…

hdu 1505 City Game

http://acm.hdu.edu.cn/showproblem.php?pid1505 先处理每一行上每一个F为底往上所到达的高度&#xff0c;然后再左右处理。 1 #include <cstdio>2 #include <cstring>3 #include <algorithm>4 #define maxn 10015 using namespace std;6 7 int t;8 int n,m…

LeetCode 1712. 将数组分成三个子数组的方案数(前缀和 + 二分查找)

文章目录1. 题目2. 解题221 / 3117&#xff0c;前7.1%574 / 9692&#xff0c;前 5.9%周赛前2题如下&#xff1a; LeetCode 5641. 卡车上的最大单元数&#xff08;排序&#xff0c;模拟&#xff09; LeetCode 5642. 大餐计数&#xff08;map计数 二分查找&#xff09; 第4题&am…

第六周交流会内容

第六周 交流会 -bO莱特 一、接口作为参数&#xff0c;不同的接口调用不同的方法&#xff0c;例如&#xff1a;输出“I love Game”或输出“我喜欢游戏” 接口的思想&#xff1a;在于可以增加很多类都需要实现的功能。比如&#xff1a;各式各样的商品&#xff0c;可能隶属不同公…

Python基础代码练习(30个示例)

1、冒泡排序 2、计算x的n次方的方法 3、计算a*a b*b c*c …… 4、计算阶乘 n! 5、列出当前目录下的所有文件和目录名 6、把一个list中所有的字符串变成小写&#xff1a; 7、输出某个路径下的所有文件和文件夹的路径 8、输出某个路径及其子目录下的所有文件路径 9、输出某个路…

LeetCode 1713. 得到子序列的最少操作次数(最长上升子序DP nlogn)

文章目录1. 题目2. 解题1. 题目 给你一个数组 target &#xff0c;包含若干 互不相同 的整数&#xff0c;以及另一个整数数组 arr &#xff0c;arr 可能 包含重复元素。 每一次操作中&#xff0c;你可以在 arr 的任意位置插入任一整数。 比方说&#xff0c;如果 arr [1,4,1,…

ubuntu 16.04系统中nvidai、cuda、cudnn安装及注意事项

一、NVIDAI driver显卡驱动安装 首先看一下笔记本显卡型号 lspci |grep VGA 在命令行敲过这个命令后&#xff0c;有些台式机或笔记本会显示nvidia显卡&#xff0c;如下所示&#xff1a; 但是我的笔记本电脑 只显示nouveau卡&#xff08;集成显卡&#xff09; 需要执行下面命…

LeetCode 552. 学生出勤记录 II(动态规划)

文章目录1. 题目2. 解题1. 题目 给定一个正整数 n&#xff0c;返回长度为 n 的所有可被视为可奖励的出勤记录的数量。 答案可能非常大&#xff0c;你只需返回结果mod 10^9 7的值。 学生出勤记录是只包含以下三个字符的字符串&#xff1a; A : Absent&#xff0c;缺勤 L : L…

ubuntu定时执行python脚本方法及实例代码

一、前言 本文将介绍ubuntu系统下如何定时执行shell脚本、python脚本&#xff0c;ubuntu系统有一个定时任务的管理器crontab&#xff0c;我们只需要编辑定时任务&#xff0c;然后重启定时任务服务就好了。 二、工具&#xff1a;crontab a、编辑定时任务&#xff1a; crontab -…

LeetCode 940. 不同的子序列 II(动态规划)

文章目录1. 题目2. 解题1. 题目 给定一个字符串 S&#xff0c;计算 S 的不同非空子序列的个数。 因为结果可能很大&#xff0c;所以返回答案模 10^9 7. 示例 1&#xff1a; 输入&#xff1a;"abc" 输出&#xff1a;7 解释&#xff1a;7 个不同的子序列分别是 &qu…

[Jmeter]Jmeter环境搭建

Jmeter环境搭建 1、 拷贝 \\szpc1450\apache-jmeter-2.7 整个目录到本机(我是放在D盘&#xff0c;以下路径说明以D盘为例) 2、 拷贝\\szpc1450\Tools\autotest softwares\jdk-6u11-windows-i586-p.exe到本机之后进行安装 安装完毕之后添加环境变量 JAVA_HOME C:\Program File…

LeetCode 907. 子数组的最小值之和(单调栈)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 A&#xff0c;找到 min(B) 的总和&#xff0c;其中 B 的范围为 A 的每个&#xff08;连续&#xff09;子数组。 由于答案可能很大&#xff0c;因此返回答案模 10^9 7。 示例&#xff1a; 输入&#xff1a;[3,1,2,4] 输出&a…

Python环境下,提高pip安装库速度的方法!

一、前言 学习 Python 的话&#xff0c;仅掌握标准库是远不够的&#xff0c;有很多好用的第三方库我们也需要用到的 大家发现 pip install 包名 的方式 安装第三方库的时候&#xff0c;下载速度很慢&#xff0c;有时还会超时&#xff0c;遇到第三方库比较大时候&#xff0c;…

LeetCode 792. 匹配子序列的单词数(二分查找)

文章目录1. 题目2. 解题1. 题目 给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数。 示例: 输入: S "abcde" words ["a", "bb", "acd", "ace"] 输出: 3 解释: 有三个是 S 的子序列的单词: "…

利用Python从字幕网上下载自己所需要的字幕(热门电影、美剧等)

一、前言 主要需求&#xff1a;利用python从字幕库网站上下载字幕 字幕网址&#xff1a;http://www.zimuku.la/ 二、方法&#xff1a; 1、打开网站&#xff0c;搜索自己所需要的字幕&#xff1a; 2、开始写代码&#xff1a; a、配置标头&#xff0c;手动输入下载的字幕名字…

ASP.NET开发,简化与封装

微软的ASP.NET的开发&#xff0c;就是面向对象的编程&#xff0c;当然前端也能体验至面向对象的话&#xff0c;使用Web控件也必须的。任一控件&#xff0c;我们均可以在后端.aspx.cs或.aspx.vb程序中new一个对象出来。很多场合里&#xff0c;在开发ASP.NET开发中&#xff0c;后…

调用Django中的API时,使用Pycharm给后端view打断点的方法

一、前言 使用Pycharm写后端很便捷&#xff0c;但是项目运行后&#xff0c;无法找到简洁的debug方法&#xff0c;本文主要以图文形式&#xff0c;说明一下利用Postman与Pycharm来给项目debug 二、方法 1、使用Pycharm打开项目文件&#xff0c;点击右上角&#xff0c;编辑配置文…

[Kaggle] Spam/Ham Email Classification 垃圾邮件分类(BERT)

文章目录1. 数据处理2. 下载预训练模型3. 加载数据4. 定义模型5. 训练6. 提交测试结果练习地址&#xff1a;https://www.kaggle.com/c/ds100fa19 相关博文&#xff1a; [Kaggle] Spam/Ham Email Classification 垃圾邮件分类&#xff08;spacy&#xff09; [Kaggle] Spam/Ham E…

python 中main函数总结

Python使用缩进对齐组织代码的执行&#xff0c;所有没有缩进的代码&#xff08;非函数定义和类定义&#xff09;&#xff0c;都会在载入时自动执行&#xff0c;这些代码&#xff0c;可以认为是Python的main函数。 每个文件&#xff08;模块&#xff09;都可以任意写一些没有缩进…