返回字符串 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. 不同字符的最小子序列相关推荐

  1. LeetCode 316. 去除重复字母 / 1081. 不同字符的最小子序列(单调栈)

    文章目录 1. 题目 2. 解题 1. 题目 LC 316: 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次.需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置). ...

  2. LeetCode 1403. 非递增顺序的最小子序列(排序)

    1. 题目 给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和. 如果存在多个解决方案,只需返回 长度最小 的子序列.如果仍然有多个解决方 ...

  3. LeetCode 5376. 非递增顺序的最小子序列

    5376. 非递增顺序的最小子序列 思路:先大到小排序,然后值相加,判断条件 class Solution { public:vector<int> minSubsequence(vect ...

  4. 365天挑战LeetCode1000题——Day 049 非递增顺序的最小子序列 贪心

    1403. 非递增顺序的最小子序列 代码实现(自解) class Solution {public:vector<int> minSubsequence(vector<int> ...

  5. 算法题解:找出包含给定字符的最小窗口(枚举的一般方法)

    题目分析 题目链接:https://leetcode.com/problems... 题目补充:t可以包含重复的字符,如果t包含了n个c,那么找出的window也要包含n个c. 窗口是由2个游标确定的 ...

  6. C++ char 类型:字符型和最小的整型

    C++ 中没有 byte,Java 中有 byte. 但是 C++ 有 char,char 是可用来放整数的最小字节类型. #include <iostream>int main() {u ...

  7. Leetcode 209.长度最小子序列(滑动窗口)

    传送门:力扣 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr- ...

  8. 1446连续字符594和谐子序列(哈希)594最长和谐子序列

    文章目录 1446 594 1446 代码 class Solution {public int maxPower(String s) {int count=1;int res=1;for(int i ...

  9. 单调栈解决维持相对位置不变最小/最大字典序问题

    多次碰到这类维持相对位置不变,删除某些元素维持最小or最大字典序问题,这里记录一下: 首先给出一个经典的例子: 我们想要维持最小或者最大,无非是要保持相对有序的情况下,保持一个递增或者递减栈,其实就是 ...

  10. 栈的基础概念与经典题目(Leetcode题解-Python语言)

    栈是先入后出(后入先出)的数据结构,常用操作就 push 和 pop,Python中用列表实现即可,基本概念可以看Leetbook相关章节. 普通栈 232. 用栈实现队列 class MyQueue ...

最新文章

  1. Zookeeper源码分析:主从角色关系流程概述
  2. 使用Goldengate 实现Oracle for Oracle 单向数据同步
  3. Linux 第71天 mariadb backup and recovery
  4. 迷失lost结局什么意思_沉默的真相结局是什么意思?严良为什么把球送给江阳儿子?...
  5. 导出页面div中的图
  6. c语言 linux常用函数,C语言常用函数
  7. idea关于连接mysql数据库异常解决的方法
  8. COM组件和一般DLL 的区别
  9. 拼多多业绩增长难继,品牌形象陷于信任危机
  10. 回归分析-线性回归-检验-模型
  11. EDI集成对业务的重要性
  12. 三角函数的倍角、半角与降幂公式
  13. [Sass常见用法] Css代码的Sass打开方式
  14. Bootstrap全部知识点总结
  15. 东北大学计算机实验班,东北大学理科试验班
  16. 2020-11-02 很多人比起穷,更受不了慢慢变富
  17. Virtualbox源码分析20 NEM(Hyper-V兼容)1 Hyper-V架构和API介绍
  18. IDEA之Windows快捷键
  19. 使用wireshark抓取Tcp三次握手
  20. 2021-2025年中国CFD在航空航天和国防中的应用行业市场供需与战略研究报告

热门文章

  1. WPF备忘录(1)有笑脸,有Popup
  2. (一)查询出排序中的最大值和最小值
  3. ECS 还是轻量应用服务器,看完评测你就知道了?
  4. Android Studio创建侧滑菜单使用心得
  5. 转:Java中abstract和interface的区别
  6. springMvc + websocket 实现点对点 聊天通信功能
  7. MYSQL 二进制还原
  8. eclipse下搭建SSH整合环境(Struts2+Spring+Hibernate+maven)
  9. 读取jar中资源文件的问题
  10. Reflector7.5.2.1的Bug