第314场Leetcode周赛|使用机器人打印字典序最小的字符串
题目:
给你一个字符串 s 和一个机器人,机器人当前有一个空字符串 t 。执行以下操作之一,直到 s 和 t 都变成空字符串:
删除字符串 s 的 第一个 字符,并将该字符给机器人。机器人把这个字符添加到 t 的尾部。
删除字符串 t 的 最后一个 字符,并将该字符给机器人。机器人将该字符写到纸上。
请你返回纸上能写出的字典序最小的字符串。
分析:(贪心)
1.字符串s将字母传递给t的尾部,t又逐个写到纸上,类似于入栈和出栈的操作
2.何时出栈?当前栈顶部的字母小于等于后面还没入栈的字母时出栈,不然等后面还未入栈的字母入栈之后,当前的顶部一定靠后出栈,从而使得输出不是最优
3.若当前顶部字母大于后面未入栈的,就要再等等
4.具体实现算法时可以先将s从后往前统计出最小的字母,之所有从后往前是因为前面的先入栈
代码:
string robotWithString(string s) {int n=s.size();vector<char>f(n+1);f[n]='z'+1;for(int i=n-1;i>=0;i--){f[i]=min(f[i+1],s[i]);}stack<char>st;string res;for(int i=0;i<n;i++){st.push(s[i]);while(!st.empty()&&st.top()<=f[i+1]){res.push_back(st.top());st.pop();}}return res;}
第314场Leetcode周赛|使用机器人打印字典序最小的字符串相关推荐
- 力扣 第314场周赛 Q3 使用机器人打印字典序最小的字符串【难度:中等,rating: 1953】(栈+贪心)
题目链接 https://leetcode.cn/problems/using-a-robot-to-print-the-lexicographically-smallest-string/ 题目来源 ...
- LeetCode 1625. 执行操作后字典序最小的字符串(BFS)
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s 以及两个整数 a 和 b .其中,字符串 s 的长度为偶数,且仅由数字 0 到 9 组成. 你可以在 s 上按任意顺序多次执行下面两个 ...
- [LeetCode周赛复盘] 第 314 场周赛20221009
[LeetCode周赛复盘] 第 314 场周赛20221009 一.本周周赛总结 二. [Easy] 6201. 找出前缀异或的原始数组 1. 题目描述 2. 思路分析 3. 代码实现 三.[Eas ...
- AcWing周赛 72 场 LeetCode单周赛 314 场 总结
一.LeetCode单周赛 314 场 1.6200.处理用时最长的那个任务的员工 (1)原题链接:力扣https://leetcode.cn/problems/the-employee-that-w ...
- Leetcode第314场周赛
题目链接 竞赛 - 力扣 (LeetCode) 题目解析 A.6200. 处理用时最长的那个任务的员工 AC代码 class Solution {public:int hardestWorker(in ...
- 力扣第314场周赛补题
1.题目:6200. 处理用时最长的那个任务的员工 - 力扣(LeetCode) 思路:两个数组记录处理时间与结果,通过遍历最长时间 class Solution { public:int harde ...
- LeeCode 第 314 场周赛
6200. 处理用时最长的那个任务的员工 遍历一遍,更新最大的答案就可.注意相等的时候,要取编号更小的. 代码: class Solution {public:int hardestWorker(in ...
- Leetcode周赛314-字典序最小的字符串
题目链接: 6202. 使用机器人打印字典序最小的字符串 思路清理: 字典序最小:为了让整个字典序最小,那么关键是让每一部分的字符串的首字母都尽可能地小.所以,我们需要不断调整来使得首字母最小 如何让 ...
- Acwing第72场周赛+Leetcode第314场周赛
Acwing第72场周赛 第一题:AcWing 4624. 最小值 分析:向下取整可以用到math.h头文件中的floor()函数,最后输出时套用两个min()函数求三个数的最小值即可. 代码: #i ...
最新文章
- python现在第几版-多版本Python共存的配置方法
- 第1个实验:用汇编语言点亮一盏LED
- 监控Tomcat解决方案(监控应用服务器系列文章分享)
- 单片机I/O口推挽输出与开漏输出的区别
- Excel-怎样实现行列转置
- Smartforms 设置纸张打印格式
- Redis命令:INCR key加1
- 答疑:有关一例EXT3文件系统故障
- 单片机小白学步系列(十七) 单片机/计算机系统概述:核心模块
- ubuntu sun-java6-jre_在 Ubuntu Lucid 下请回 Sun Java6 Jre, 赶走 OpenJDK
- android r 编译找不到头文件_嵌入式开发之交叉编译程序万能命令_以freetype为例...
- 创意油墨飞溅效果的绿树矢量素材
- nodejs+express中设置登录拦截器
- 文本文件以EF BB开头,使用UTF8读取
- Visio图标模板库
- tp51 自定义404界面的配置
- SmartSVN 11 破解 亲测可用 license
- 2022年10款好用免费数据恢复软件分享
- 清华大学孙富春教授:基于知识智能的机器人技能学习
- 论文翻译:搜索人脸活体检测的中心差异卷积网络及实现代码