题目:

给你一个字符串 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周赛|使用机器人打印字典序最小的字符串相关推荐

  1. 力扣 第314场周赛 Q3 使用机器人打印字典序最小的字符串【难度:中等,rating: 1953】(栈+贪心)

    题目链接 https://leetcode.cn/problems/using-a-robot-to-print-the-lexicographically-smallest-string/ 题目来源 ...

  2. LeetCode 1625. 执行操作后字典序最小的字符串(BFS)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s 以及两个整数 a 和 b .其中,字符串 s 的长度为偶数,且仅由数字 0 到 9 组成. 你可以在 s 上按任意顺序多次执行下面两个 ...

  3. [LeetCode周赛复盘] 第 314 场周赛20221009

    [LeetCode周赛复盘] 第 314 场周赛20221009 一.本周周赛总结 二. [Easy] 6201. 找出前缀异或的原始数组 1. 题目描述 2. 思路分析 3. 代码实现 三.[Eas ...

  4. AcWing周赛 72 场 LeetCode单周赛 314 场 总结

    一.LeetCode单周赛 314 场 1.6200.处理用时最长的那个任务的员工 (1)原题链接:力扣https://leetcode.cn/problems/the-employee-that-w ...

  5. Leetcode第314场周赛

    题目链接 竞赛 - 力扣 (LeetCode) 题目解析 A.6200. 处理用时最长的那个任务的员工 AC代码 class Solution {public:int hardestWorker(in ...

  6. 力扣第314场周赛补题

    1.题目:6200. 处理用时最长的那个任务的员工 - 力扣(LeetCode) 思路:两个数组记录处理时间与结果,通过遍历最长时间 class Solution { public:int harde ...

  7. LeeCode 第 314 场周赛

    6200. 处理用时最长的那个任务的员工 遍历一遍,更新最大的答案就可.注意相等的时候,要取编号更小的. 代码: class Solution {public:int hardestWorker(in ...

  8. Leetcode周赛314-字典序最小的字符串

    题目链接: 6202. 使用机器人打印字典序最小的字符串 思路清理: 字典序最小:为了让整个字典序最小,那么关键是让每一部分的字符串的首字母都尽可能地小.所以,我们需要不断调整来使得首字母最小 如何让 ...

  9. Acwing第72场周赛+Leetcode第314场周赛

    Acwing第72场周赛 第一题:AcWing 4624. 最小值 分析:向下取整可以用到math.h头文件中的floor()函数,最后输出时套用两个min()函数求三个数的最小值即可. 代码: #i ...

最新文章

  1. python现在第几版-多版本Python共存的配置方法
  2. 第1个实验:用汇编语言点亮一盏LED
  3. 监控Tomcat解决方案(监控应用服务器系列文章分享)
  4. 单片机I/O口推挽输出与开漏输出的区别
  5. Excel-怎样实现行列转置
  6. Smartforms 设置纸张打印格式
  7. Redis命令:INCR key加1
  8. 答疑:有关一例EXT3文件系统故障
  9. 单片机小白学步系列(十七) 单片机/计算机系统概述:核心模块
  10. ubuntu sun-java6-jre_在 Ubuntu Lucid 下请回 Sun Java6 Jre, 赶走 OpenJDK
  11. android r 编译找不到头文件_嵌入式开发之交叉编译程序万能命令_以freetype为例...
  12. 创意油墨飞溅效果的绿树矢量素材
  13. nodejs+express中设置登录拦截器
  14. 文本文件以EF BB开头,使用UTF8读取
  15. Visio图标模板库
  16. tp51 自定义404界面的配置
  17. SmartSVN 11 破解 亲测可用 license
  18. 2022年10款好用免费数据恢复软件分享
  19. 清华大学孙富春教授:基于知识智能的机器人技能学习
  20. 论文翻译:搜索人脸活体检测的中心差异卷积网络及实现代码

热门文章

  1. 【原创】积性函数和狄利克雷卷积学习笔记 未完成
  2. 【技术栈——00042】Docker网络端口指定的两种方式
  3. vue element计算表格合计问题
  4. deepfakes超进化!反复变脸行云流水,完全没有PS痕迹,推特10万点赞
  5. 计算机 屏幕卡住,电脑卡屏是怎么回事 电脑屏幕死机或卡死处理方法
  6. 利用中央气象台的天气预报API实现天气预报
  7. 3d wallpaper android,3D Parallax Wallpaper
  8. Android 编译打包的那些疑问
  9. 修改GL-iNet路由器的reset键功能
  10. 写在离职前,我在富士康的这两年