天池 在线编程 删除字符(单调栈)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

描述

给定一个字符串str,现在要对该字符串进行删除操作,
保留字符串中的 k 个字符且相对位置不变,并且使它的字典序最小,返回这个子串。

示例

1:
输入:str="fskacsbi",k=2
输出:"ab"
解释:“ab“是str中长度为2并且字典序最小的子串例2:
输入:str="fsakbacsi",k=3
输出:"aac"

来源:https://tianchi.aliyun.com/oj/141758389886413149/160295184768372893

2. 解题

class Solution {
public:/*** @param str: the string* @param k: the length* @return: the substring with  the smallest lexicographic order*/string deleteChar(string &str, int k) {// Write your code here.int n = str.size();if(k >= n)//不用删return str;int del = n-k;//要删除的个数stack<char> stk;for(int i = 0; i < n; i++){while(!stk.empty() && stk.top() > str[i] && del){	//还可删del > 0 且 前面的字符比当前的大,删除之stk.pop();del--;}stk.push(str[i]);}while(del--)//还没删完的,从尾巴开始删stk.pop();string ans;while(!stk.empty()){ans = stk.top() + ans;stk.pop();}return ans;}
};

50ms C++


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

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

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

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

相关文章

Flink常见流处理API

Flink 流处理API的编程可以分为environment&#xff0c;source&#xff0c;transform&#xff0c;sink四大部分 1 Flink支持的数据类型 在Flink底层因为要对所有的数据序列化&#xff0c;反序列化对数据进行传输&#xff0c;以便通过网络传送它们&#xff0c;或者从状态后端、…

Flask框架项目实例:**租房网站(二)

Flask是一款MVC框架&#xff0c;主要是从模型、视图、模板三个方面对Flask框架有一个全面的认识&#xff0c;通过完成作者-读书功能&#xff0c;先来熟悉Flask框架的完整使用步骤。 操作步骤为&#xff1a; 1.创建项目2.配置数据库3.定义模型类4.定义视图并配置URL 5.定义模板…

Android中的APK,TASK,PROCESS,USERID之间的关系

开发Android已经有一段时间了&#xff0c;今天接触到底层的东西&#xff0c;所以对于进程&#xff0c;用户的id以及Android中的Task,Apk之间的关系&#xff0c;要做一个研究&#xff0c;下面就是研究结果: apk一般占一个dalvik,一个进程,一个task。当然通过通过设置也可以多个进…

天池 在线编程 插入五

文章目录1. 题目2. 解题1. 题目 描述 给定一个数字&#xff0c;在数字的任意位置插入一个5&#xff0c;使得插入后的这个数字最大 示例 样例 1: 输入: a 234 输出: 5234 来源&#xff1a;https://tianchi.aliyun.com/oj/141758389886413149/160295184768372892 2. 解…

Flink的Window

1 Window概述 streaming流式计算是一种被设计用于处理无限数据集的数据处理引擎&#xff0c;而无限数据集是指一种不断增长的本质上无限的数据集&#xff0c;而window是一种切割无限数据为有限块进行处理的手段。 Window是无限数据流处理的核心&#xff0c;Window将一个无限的s…

标记语言Markdown介绍以及日常使用

Markdown介绍 Markdown是一种文本标记语言&#xff0c;用于快速文档排版Markdown文件为纯文本文件&#xff0c;后缀名为 .mdMarkdown介于Word和HTML之间 比起Word&#xff0c;Markdown是纯文本&#xff0c;排版文档轻量、方便、快速。比起HTML&#xff0c;Markdown简单直观&…

Everyday is an Opportunity

Quote Of The Day: “Everyday is an Opportunity to Learn and Grow, Don’t Waste Your Opportunity.” – Alan THE END 转载于:https://www.cnblogs.com/lan1x/p/3572914.html

天池 在线编程 有效的字符串

文章目录1. 题目2. 解题1. 题目 描述 如果字符串的所有字符出现的次数相同&#xff0c;则认为该字符串是有效的。 如果我们可以在字符串的某1个索引处删除1个字符&#xff0c;并且其余字符出现的次数相同&#xff0c;那么它也是有效的。 给定一个字符串s&#xff0c;判断它是否…

Flink的时间语义和Watermark

1 时间语义 数据迟到的概念是&#xff1a;数据先产生&#xff0c;但是处理的时候滞后了 在Flink的流式处理中&#xff0c;会涉及到时间的不同概念&#xff0c;如下图所示&#xff1a; Event Time&#xff1a;是事件创建的时间。它通常由事件中的时间戳描述&#xff0c;例如采集…

数据分析案例:亚洲国家人口数据计算

数据截图: 数据下载地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1dGHwAC5 密码&#xff1a;nfd2 该数据包含了2006年-2015年10年间亚洲地区人口数量数据&#xff0c;共10行50列数据。我们需要使用Numpy完成如下数据任务: 计算2015年各个国家人口数据计算朝鲜历…

LeetCode 1646. 获取生成数组中的最大值

文章目录1. 题目2. 解题1. 题目 给你一个整数 n 。按下述规则生成一个长度为 n 1 的数组 nums &#xff1a; nums[0] 0nums[1] 1当 2 < 2 * i < n 时&#xff0c;nums[2 * i] nums[i]当 2 < 2 * i 1 < n 时&#xff0c;nums[2 * i 1] nums[i] nums[i 1]…

【CentOS 6.5】QtCreator启动时关于dbus-1的错误解决方法

关于上篇文章留下的启动QtCreator提示:dbus_connection_can_send_type的错误,解决办法: 更新dbus版本来解决.. 首先去 http://dbus.freedesktop.org/releases/dbus/ 下载dbus的最新版本... 解压后,进入 文件夹:dbus-1.8.0运行如下命令: ./configure --prefix/usrmakesudo make …

TotoiseSVN的基本使用方法

一、签入源代码到SVN服务器 假如我们使用Visual Studio在文件夹StartKit中创建了一个项目&#xff0c;我们要把这个项目的源代码签入到SVN Server上的代码库中里&#xff0c;首先右键点击StartKit文件夹&#xff0c;这时候的右键菜单如下图所示&#xff1a; 图2-2-1 点击Import…

Flink的ProcessFunction API

1 ProcessFunction ProcessFunction是一个低阶的流处理操作&#xff0c;可以访问事件(event)(流元素)&#xff0c;状态(state)(容错性&#xff0c;一致性&#xff0c;仅在keyed stream中)&#xff0c;定时器(timers)(event time和processing time&#xff0c; 仅在keyed stream…

LeetCode 1647. 字符频次唯一的最小删除次数(贪心)

文章目录1. 题目2. 解题1. 题目 如果字符串 s 中 不存在 两个不同字符 频次 相同的情况&#xff0c;就称 s 是 优质字符串 。 给你一个字符串 s&#xff0c;返回使 s 成为 优质字符串 需要删除的 最小 字符数。 字符串中字符的 频次 是该字符在字符串中的出现次数。 例如&am…

分享Db4o的便捷封装类源码

导言 大家好&#xff0c;话说真是好久好久没写文章了&#xff0c;哈哈。 最近在写网站&#xff0c;个人对传统数据库天然抵触&#xff0c;感觉非常繁冗&#xff0c;即便是Entity Framework也过于庞杂了&#xff0c;Db4o这种轻量级且读写、配置都极其方便的新型数据库非常适合我…

Flink中的状态管理

1 Flink中的状态 当数据流中的许多操作只查看一个每次事件(如事件解析器)&#xff0c;一些操作会跨多个事件的信息(如窗口操作)。这些操作称为有状态。状态由一个任务维护&#xff0c;并且用来计算某个结果的所有数据&#xff0c;都属于这个任务的状态。可以简单的任务状态就是…

Python之日志处理(logging模块)

主要内容 日志相关概念logging模块简介使用logging提供的模块级别的函数记录日志logging模块日志流处理流程使用logging四大组件记录日志配置logging的几种方式向日志输出中添加上下文信息参考文档 一、日志相关概念 日志是一种可以追踪某些软件运行时所发生事件的方法。软件开…

LeetCode 514. 自由之路(记忆化递归 / DP)

文章目录1. 题目2. 解题1. 题目 电子游戏“辐射4”中&#xff0c;任务“通向自由”要求玩家到达名为“Freedom Trail Ring”的金属表盘&#xff0c;并使用表盘拼写特定关键词才能开门。 给定一个字符串 ring&#xff0c;表示刻在外环上的编码&#xff1b;给定另一个字符串 ke…

thinkpad s3 安装win8 kali双系统笔记

前段时间入手了一台thinkpad s3(i7,8G),预装了win8系统,windows下写代码,环境配置比较麻烦,就想安装kali linux做双系统,官方参考文档:http://docs.kali.org/installation/dual-boot-kali-with-windows但s3预装了64bit win8,采用的是UEFI启动,官方文档并不完全适用,所以折腾了一…