LeetCode刷题【栈】

目录

    • 394. 字符串解码
    • 739. 每日温度

394. 字符串解码

给定一个经过编码的字符串,返回它解码后的字符串。

编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。

你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。

此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。

在这里插入图片描述

class Solution {
public:string getDigits(string &s, int& ptr){string ret = "";while(isdigit(s[ptr])){ret.push_back(s[ptr++]);}return ret;}string getString(vector<string> &v){string ret;for(auto &s : v){ret += s;}return ret;}string decodeString(string s) {vector<string> stk;int ptr = 0;while(ptr < s.size()){char cur = s[ptr];if(isdigit(cur)){// 获取一个数字并进栈string digits = getDigits(s, ptr);stk.push_back(digits);}else if(isalpha(cur) || cur == '['){// 获取一个字母并进栈stk.push_back(string(1, s[ptr++]));}else{ptr++;vector<string> sub;while(stk.back() != "["){sub.push_back(stk.back());stk.pop_back();}reverse(sub.begin(), sub.end());// 左括号出栈stk.pop_back();// 此时栈顶为当前sub对应的字符串应该出现的次数int repTime = stoi(stk.back());stk.pop_back();string t, o = getString(sub);// 构造字符串while(repTime--){t += o;}stk.push_back(t);}}return getString(stk);}
};

739. 每日温度

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。

在这里插入图片描述

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {int n = temperatures.size();vector<int> ans(n);stack<int> s;for(int i = 0; i < n; i++){while(!s.empty() && temperatures[i] > temperatures[s.top()]){int previousIndex = s.top();ans[previousIndex] = i - previousIndex;s.pop();}s.push(i);}return ans;}
};

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

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

相关文章

Hive详解(2)

​​Hive 表结构 分区表 多字段分区&#xff1a;需要使用多个字段来进行分区&#xff0c;那么此时字段之间会构成多层目录&#xff0c;前一个字段形成的目录会包含后一个字段形成的目录&#xff0c;从而形成多级分类的效果。例如商品的大类-小类-子类&#xff0c; 省市县、年…

Netty教程之NIO基础

NIO 介绍 NIO 全称java non-blocking IO&#xff08;非阻塞 I/O&#xff09;&#xff0c;后续提供了一系列改进的输入/输出的新特性&#xff0c;被统称为 NIO(即 New IO)&#xff0c;是同步非阻塞的。 阻塞和非阻塞是进程在访问数据的时候&#xff0c;数据是否准备就绪的一种…

内存泄漏是什么?如何避免内存泄漏?

1.2 内存泄漏 使用new开辟空间泄漏&#xff0c;抛出异常 int main() {int size 0;try{while (1){//int* p (int*)malloc(sizeof(int) * 1024 * 1024);/*if (p NULL){break;}*/int* p new int[1024 * 1024];size size 4 * 1024 * 1024;cout << p << endl;}}…

代码随想录算法训练营第二十五天|17.电话号码的字母组合、39.组合总和、40.组合总和Ⅲ

文档链接&#xff1a;https://programmercarl.com/ LeetCode17.电话号码的字母组合 题目链接&#xff1a;​​​​​​​https://leetcode.cn/problems/letter-combinations-of-a-phone-number/ 思路&#xff1a; 理解本题后&#xff0c;要解决如下三个问题&#xff1a; 数…

mongodb sharding分片模式的集群数据库,日志治理缺失导致写入数据库报错MongoWriteConcernException的问题总结(下)

一、接着上文 上文介绍了mongodb sharding的分片集群搭建&#xff0c;本文侧重于讲述日志治理。 这里使用linux自带的日志治理工具logrotate&#xff0c;无论是哪个端口的进程&#xff0c;其日志治理方式类似。 查看/data目录下的文件大小&#xff0c; du -hs *二、Logrota…

每日一题(相交链表 )

欢迎大家来我们主页进行指导 LaNzikinh-CSDN博客 160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节…

linux 中的syslog的含义和用法

在Linux系统中&#xff0c;syslog是一种系统日志服务&#xff0c;用于收集、存储和管理系统和应用程序生成的日志消息。syslog服务负责记录系统的运行状态、错误信息、警告、调试信息等&#xff0c;以便系统管理员可以监控系统的健康状况、故障排查和性能优化。 含义和作用&am…

RUST使用crates.io上的依赖完整教程

1.打开crates.io 2.搜索要使用的依赖,如rand 点击包名,进入包详情页面: 添加依赖方法有两种 1.使用cargo命令 2.直接修改Cargo.toml 使用cargo命令操作如下: 在工程目录执行如下命令: cargo add rand 执行完成后如自动向Cargo.toml中添加依赖如下: 手动修改Cargo.toml是…

漏洞挖掘 | ruoyi框架管理系统漏洞

前言&#xff1a; 在挖src的时候&#xff0c;可以通过信息收集收集弱口令&#xff0c;然后通过后台弱口令进入后台&#xff1a; 发现一个弱口令进去后&#xff1a; 【魔方老师提醒才发现&#xff0c;这个蓝色的草丛其实可以大致判断是若依系统】 看这界面&#xff0c;是不是…

XSS伪协议

XSS伪协议简介 XSS&#xff08;跨站脚本攻击&#xff09;中的伪协议是指利用一些浏览器允许的特殊协议来执行恶意脚本的一种方式。常见的伪协议包括 javascript:, data:, vbscript: 等。 攻击者可以通过构造特定的URL&#xff0c;将恶意脚本注入到网页中&#xff0c;从而实现…

基于8086密码锁可修改仿真

**单片机设计介绍&#xff0c;基于8086密码锁可修改仿真 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于8086的密码锁可修改仿真设计是一个结合了微处理器控制、密码管理和仿真技术的综合性项目。通过此设计&#xff0c;用户可以设定和…

海外媒体宣发技巧解析从而提升宣发效果

在当今全球化的媒体环境下&#xff0c;海外媒体宣发是企业和品牌推广的重要手段。然而&#xff0c;要在海外市场取得成功&#xff0c;一味地复制国内的宣发策略是行不通的。要想提升宣发效果&#xff0c;就必须了解并掌握一些海外媒体宣发的技巧。世媒讯一家从事海内外媒体的推…

JSON与AJAX:网页交互的利器

在现代Web开发中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;和AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是两项不可或缺的技术。它们共同为网页提供了动态、实时的数据交互能力&#xff0c;为用户带来了更加流畅和丰富的体验。本…

git配置SSH 密钥

git配置SSH 密钥 1.window配置ssh1.安装ssh2.安装 Git&#xff08;安装教程参见安装Git&#xff09;并保证版本大于 1.9![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e59f4e16b83c45649f1d9d7bd6bf92c0.png)3.SSH 尽量保持最新&#xff0c;6.5之前的版本由于使用…

用ChatGPT出题,完全做不完

最近小朋友正在学习加减法&#xff0c;正好利用ChatGPT来生成加减法练习题&#xff0c;小朋友表示够了&#xff0c;够了&#xff0c;完全做不完。本文将给大家介绍如何利用ChatGPT来生成练习题。 尚未获得ChatGPT的用户&#xff0c;请移步&#xff1a;五分钟开通GPT4.0。 角色…

Hbase常用命令选择题

题目&#xff1a;在HBase Shell中&#xff0c;哪个命令用于列出所有表&#xff1f; A. list B. show C. display D. tables 答案&#xff1a;A 解析&#xff1a;在HBase Shell中&#xff0c;list和tables命令都可以用来列出所有的表。但在较新版本的HBase中&#xff0c;推荐使用…

C++20之Concept

C20之Concept&#xff08;概念部分&#xff0c;之一&#xff09;_c concept-CSDN博客 C20之Concpet&#xff08;概念部分&#xff0c;之二&#xff09;_c concept-CSDN博客

未来AI技术的创业机遇:探索科技创新的前沿领域

在当今科技创新的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;技术已成为最引人注目的前沿领域之一。AI技术不仅在科学研究中占据着举足轻重的地位&#xff0c;而且在商业应用中也展现出了巨大的潜力&#xff0c;为创业者提供了前所未有的机会和挑战。本文将探讨随着…

Cadence HDL原理图创建时多个VCC或GND处理方法

1.先new一个 2. 下面的Global pin 的name处不要直接使用GND&#xff0c;不然后期画图容易混淆。 数字地使用VSS&#xff1b;模拟地使用VEE等 3. 之后继续按照普通原理图进行绘制即可。 原理图封装绘制 4. 最后在原理图中要对该网络进行说明&#xff01;&#xff01;&#…

判断点在多边形内的算法

在计算几何中&#xff0c;判定点是否在多边形内&#xff0c;是个非常有趣的问题。通常有两种方法&#xff1a; 一、Crossing Number&#xff08;交叉数&#xff09; 它计算从点P开始的射线穿过多边形边界的次数。当“交叉数”是偶数时&#xff0c;点在外面;当它是奇数时&…