1081. 不同字符的最小子序列
返回字符串 text 中按字典序排列最小的子序列,该子序列包含 text 中所有不同字符一次。
示例 1:
输入:"cdadabcc"
输出:"adbc"
示例 2:
输入:"abcd"
输出:"abcd"
示例 3:
输入:"ecbacba"
输出:"eacb"
示例 4:
输入:"leetcode"
输出:"letcod"
提示:
1 <= text.length <= 1000
text 由小写英文字母组成
题解:
思路:
1、题目要实现的是删除重复字符后,字典序最小的字符串;
2、该类问题,可以采用递增栈的思路来解决;
class Solution {
public:
string smallestSubsequence(string s) {
string stk;
int i = 0;
for (int i = 0; i < s.size(); ++i) {
if (stk.find(s[i]) != string::npos)
continue;
while (stk.size() && stk.back() > s[i] && s.find(stk.back(), i) != string::npos) {
stk.pop_back();
}
stk.push_back(s[i]);
}
return stk;
}
};
1081. 不同字符的最小子序列相关推荐
- LeetCode 316. 去除重复字母 / 1081. 不同字符的最小子序列(单调栈)
文章目录 1. 题目 2. 解题 1. 题目 LC 316: 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次.需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置). ...
- LeetCode 1403. 非递增顺序的最小子序列(排序)
1. 题目 给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和. 如果存在多个解决方案,只需返回 长度最小 的子序列.如果仍然有多个解决方 ...
- LeetCode 5376. 非递增顺序的最小子序列
5376. 非递增顺序的最小子序列 思路:先大到小排序,然后值相加,判断条件 class Solution { public:vector<int> minSubsequence(vect ...
- 365天挑战LeetCode1000题——Day 049 非递增顺序的最小子序列 贪心
1403. 非递增顺序的最小子序列 代码实现(自解) class Solution {public:vector<int> minSubsequence(vector<int> ...
- 算法题解:找出包含给定字符的最小窗口(枚举的一般方法)
题目分析 题目链接:https://leetcode.com/problems... 题目补充:t可以包含重复的字符,如果t包含了n个c,那么找出的window也要包含n个c. 窗口是由2个游标确定的 ...
- C++ char 类型:字符型和最小的整型
C++ 中没有 byte,Java 中有 byte. 但是 C++ 有 char,char 是可用来放整数的最小字节类型. #include <iostream>int main() {u ...
- Leetcode 209.长度最小子序列(滑动窗口)
传送门:力扣 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr- ...
- 1446连续字符594和谐子序列(哈希)594最长和谐子序列
文章目录 1446 594 1446 代码 class Solution {public int maxPower(String s) {int count=1;int res=1;for(int i ...
- 单调栈解决维持相对位置不变最小/最大字典序问题
多次碰到这类维持相对位置不变,删除某些元素维持最小or最大字典序问题,这里记录一下: 首先给出一个经典的例子: 我们想要维持最小或者最大,无非是要保持相对有序的情况下,保持一个递增或者递减栈,其实就是 ...
- 栈的基础概念与经典题目(Leetcode题解-Python语言)
栈是先入后出(后入先出)的数据结构,常用操作就 push 和 pop,Python中用列表实现即可,基本概念可以看Leetbook相关章节. 普通栈 232. 用栈实现队列 class MyQueue ...
最新文章
- Zookeeper源码分析:主从角色关系流程概述
- 使用Goldengate 实现Oracle for Oracle 单向数据同步
- Linux 第71天 mariadb backup and recovery
- 迷失lost结局什么意思_沉默的真相结局是什么意思?严良为什么把球送给江阳儿子?...
- 导出页面div中的图
- c语言 linux常用函数,C语言常用函数
- idea关于连接mysql数据库异常解决的方法
- COM组件和一般DLL 的区别
- 拼多多业绩增长难继,品牌形象陷于信任危机
- 回归分析-线性回归-检验-模型
- EDI集成对业务的重要性
- 三角函数的倍角、半角与降幂公式
- [Sass常见用法] Css代码的Sass打开方式
- Bootstrap全部知识点总结
- 东北大学计算机实验班,东北大学理科试验班
- 2020-11-02 很多人比起穷,更受不了慢慢变富
- Virtualbox源码分析20 NEM(Hyper-V兼容)1 Hyper-V架构和API介绍
- IDEA之Windows快捷键
- 使用wireshark抓取Tcp三次握手
- 2021-2025年中国CFD在航空航天和国防中的应用行业市场供需与战略研究报告
热门文章
- WPF备忘录(1)有笑脸,有Popup
- (一)查询出排序中的最大值和最小值
- ECS 还是轻量应用服务器,看完评测你就知道了?
- Android Studio创建侧滑菜单使用心得
- 转:Java中abstract和interface的区别
- springMvc + websocket 实现点对点 聊天通信功能
- MYSQL 二进制还原
- eclipse下搭建SSH整合环境(Struts2+Spring+Hibernate+maven)
- 读取jar中资源文件的问题
- Reflector7.5.2.1的Bug