51 nod 1255 字典序最小的子序列

2023-05-16

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1255

思路:
分三种情况:

1:栈空,直接将字母压入。

2:栈非空,当前字母大于栈顶元素,栈中未出现该字母,压入栈。
3:栈非空,当前字母小于栈顶元素,栈中未出现该字母,执行循环:栈顶元素大于当前字母,且后面还存在栈顶元素,弹出栈顶元素。最后压入当前字母。

#include<iostream>
#include<stack>
#include<cstring>
#include<stdio.h>
#include<algorithm>
#define maxn 100005
using namespace std;
int coun[27];
bool juge[27];
char s[maxn];
int main()
{
   scanf("%s",s);
   int len=strlen(s);
   for(int x=0;x<27;x++)
    coun[x]=0,juge[x]=0;
   for(int x=0;x<len;x++)
    coun[s[x]-'a']++;
   stack<char>s1,s2;
   for(int x=0;x<len;x++)
   {
       coun[s[x]-'a']--;
       if(s1.empty())
        s1.push(s[x]),juge[s[x]-'a']=1;
      else if(s[x]>s1.top()&&juge[s[x]-'a']==0&&!s1.empty())
        s1.push(s[x]),juge[s[x]-'a']=1;
       else if(!s1.empty()&&s[x]<s1.top()&&juge[s[x]-'a']==0)
       {
           while(!s1.empty()&&s[x]<s1.top()&&coun[s1.top()-'a']>0)
                 juge[s1.top()-'a']=0,s1.pop();
           s1.push(s[x]);juge[s1.top()-'a']=1;
       }
   }
   while(!s1.empty())
   {
       s2.push(s1.top());
       s1.pop();
   }
   while(!s2.empty())
   {
      printf("%c",s2.top());
       s2.pop();
   }
   printf("\n");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51 nod 1255 字典序最小的子序列 的相关文章

  • python中pip安装的包都在哪里?

    1 windows的话 xff0c 在cmd中使用 pip list 查看已安装的包名2 windows的话 xff0c 在cmd中然后用 pip show 包名 xff0c 就可以看到安装到哪了 3 练习 xff1a 将pymysql通过
  • Rust 基础(一)

    Rust 1 65 发布于2022 11 03 一 安装 配置环境变量 RUSTUP HOME Rustup元数据和工具链将被安装到Rustup主目录中 默认 xff1a USERPROFILE rustup CARGO HOME Carg
  • 定制适用于ARM平台的Ubuntu rootfs(根文件系统)

    0 背景 有一个很厉害的师兄针对我们实验室的需求设计了一块控制板 xff0c 以beaglebone为基础 xff0c 由于更改了一些底层的硬件 xff0c 所以重新定制编译的内核 xff0c 并预先烧写到了板子的flash中 现在需要安装
  • Win10使用附件中的远程桌面连接Ubuntu 16.04图形界面(xrdp方法)

    Ubuntu16 04下 以下命令行皆是在终端中运行 xff1a 安装xrdp sudo apt get install xrdp 安装vnc4server sudo apt get install vnc4server 安装xubuntu
  • CMake构建OpenCV项目

    文章目录 前言一 基本概念二 操作步骤1 创建OpenCV程序2 创建CMake文件3 编译项目4 运行项目 总结 前言 CMake是个一个开源的跨平台自动化建构系统 xff0c 用来管理软件建置的程序 xff0c 并不依赖于某特定编译器
  • 5GC基础:架构和网元

    1 主要内容 5GC xff08 SA xff09 架构介绍 5GC主要网元及功能对比 5GC网络架构的主要变化 SBA架构网元的注册 发现与选择CUPS边缘计算MM和SM的分离计算与存储的解耦与非3GPP的互操作能力开放PCC架构的变化
  • visual studio进入时许可证已过期解决方案

    新手小白 xff0c 记录一下 问题 xff1a 解决步骤 xff1a 1 打开visual studio installer gt 点击更多 gt 点击修复 2 等待更新安装 xff08 耗时略微有些长 xff09 3 点击启动 xff0
  • Qt 在windows 和linux 下的编译教程

    Qt 源码下载地址 xff1a https download qt io archive qt 打开上面的网址 xff0c 进入 submodules 目录下载 qtbase everywhere src 6 4 2 zip xff0c 这
  • 【位运算总结】 之 左移运算

    左移运算的概念 xff1a 左移运算符 应用 xff1a 1 优化代码 因为左移运算比乘法快 xff0c 因此x 61 x 2可优化为x 61 x lt lt 1 2 计算一个数的二进制的某位 如题 xff1a 给定一个含不同整数的集合 x
  • 关于Qt的QMainWindow、QTableWidget、QComboBox、QScrollArea的widget导致的qss无效问题

    问题 前阵子比较忙 xff0c 忘记记录这个问题了 事情是我在写QTableWidget的qss时候 xff0c 要把下图红色箭头指向的这个边角样式改变时发现的 我发现我对QTabelCornerButton写样式无效 但是我印象里 xff
  • Ubuntu 系统 dpkg 命令使用详解

    dpkg 即 package manager for Debian xff0c 是 Debian 和基于 Debian 的系统中一个主要的包管理工具 xff0c 可以用来安装 构建 卸载 管理 deb 格式的软件包 安装软件 使用 span
  • [python]输出“hello 姓名”

    print 34 hello tianxinyao 34
  • Java实现敏感词过滤 - IKAnalyzer中文分词工具

    IKAnalyzer 是一个开源的 xff0c 基于java语言开发的轻量级的中文分词工具包 官网 xff1a https code google com archive p ik analyzer 本用例借助 IKAnalyzer 进行分
  • 虚拟机可以连接,但是不能上网

    解决方法链接 虚拟可以连接但不能上网 xff0c 一般是DNS的问题 解决方法 xff1a xff08 1 xff09 进入网络共享中 xff0c xff08 2 xff09 进入本地连接 属性 xff08 3 xff09 进入TCP IP
  • QThread必须要了解的几个函数

    概述 如果想对Qt中的QThread有个更加深刻的了解 xff0c 必须要知道这几个重要的函数 xff0c 现在就一一介绍下 函数介绍 属性返回值函数体功能staticQThread QThread currentThread 返回当前线程
  • codeforces 766C Mahmoud and a Message

    题意 xff1a 给你一个长度为n的仅包括小写字母的字符串 xff0c 每个小写字母能在一个长度不超过a i xff08 i是小写字母序号如a为0 xff09 的子串中 问 xff1a 1 有多少种分隔方法 2 所有分割方法中最长的子串有多
  • 结构体对齐详解

    1 结构体基础知识 a 认识结构体 结构体是一些值的集合 这些值称为成员变量 结构体的每个成员可以是不同类型的变量 声明一个结构体类型 声明一个学生类型 Stu就是你对这个结构体的称呼 struct Stu char name 20 cha
  • gitlab搬迁到其它服务器

    由于一些因素 xff0c 需要把gitlab从A服务器搬迁到B服务器 xff0c 现记录步骤如下 xff1a 1 查看A服务器的gitlab版本号 xff1a cat opt gitlab embedded service gitlab r
  • 深度学习在图像超分辨率重建中的应用

    同步更新于知乎 xff1a https zhuanlan zhihu com p 25532538 超分辨率技术 xff08 Super Resolution xff09 是指从观测到的低分辨率图像重建出相应的高分辨率图像 xff0c 在监
  • Xorg 的认识

    1 什么是X Window服务器 xff1f 一种图形用户界面只不过是运行在系统上的一个应用程序 它不是 Linux内核的一部分 xff0c 也没有 集成在你的系统里 它是一个可以为你的工作站提供图形化工作界面的强大工具 由于标准的重要性

随机推荐

  • 利用Python获取带合并单元格的表格数据

    由于在日常运维中经常出现一些合并单元格的表格 xff0c 如果要获取数据比较麻烦 xff0c 现将将封装成类 xff0c 并通过调用list excel data 获取列表形式的数据 dict excel data xff1a 获取字典格式
  • 输出不重复的数组元素

    include lt stdio h gt include lt stdlib h gt include lt math h gt int main int n int f 61 1 scanf 34 d 34 amp n int a n
  • UDP编程之windows socket 缓冲区默认大小

    笔者遇到下位机发过来的几百k的文件 xff0c 为了调试方便 xff0c 一开始并没有加协议 后面发现在OnRecv的回调中打印消息时 xff0c 居然UDP丢包了 后面经过多次分析 xff0c 才发现windows默认的socket缓冲区
  • Wmmem占用内存、CPU过多

    Wmmem占用内存 CPU过多 1 问题描述2 解释 2 1 Vmmem是啥2 2 解决办法 1 问题描述 Windows10中 xff0c 没跑啥软件 xff0c 就看见内存满了 Vmmem占用最多 2 解释 2 1 Vmmem是啥 wi
  • Java基础篇:反射机制详解

    一 什么是反射 xff1a xff08 1 xff09 Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息 xff0c 从而操作类或对象的属性和方法 本质是JVM得到class对象之后 xff0c 再通过class对象进行反编
  • 使用linux裁剪树莓派完整sd卡镜像

    解决了最小镜像的制作问题以后 xff0c 就发现手里已经积攒了不少用Win32DiskImager制作的完整sd卡镜像 虽然压缩过了以后很小 xff0c 但是在恢复镜像时32G大小的写入速度简直慢到龟速 xff0c 所以我通过Ubuntu来
  • Arch 安装中文输入法

    推荐安装小狼毫输入法 安装 从官方仓库安装ibus软件包 xff1a span class hljs comment pacman S ibus span 此外 xff0c 为了启动ibus的Qt应用程序支持 安装ibus qt软件库 xf
  • angular11报错Can‘t bind to ‘ngForOf‘ since it isn‘t a known property of ‘tr‘. 三种排查办法以及解决方案

    当你遇到Can t bind to ngForOf since it isn t a known property of tr 34 无法绑定到 ngforof xff0c 因为它不是 tr 的已知属性 xff08 可能问题一 xff1a
  • 如何禁止DELETE、PUT、OPTIONS、TRACE、HEAD等协议访问应用程序

    简介 WebDAV xff08 Web based Distributed Authoring and Versioning xff09 是基于 HTTP 1 1 的一个通信协议 它为 HTTP 1 1 添加了一些扩展 xff08 就是在
  • c++对象模型系列

    一 指针与引用 一 概括 指针和引用 xff0c 在C 43 43 的软件开发中非常常见 xff0c 如果能恰当的使用它们能够极大的提 高整个软件的效率 xff0c 但是很多的C 43 43 学习者对它们的各种使用情况并不是都了解 xff0
  • ProxmoxVE 6.4-13 (PVE)安装 OpenWrt

    创建虚拟机没什么好说的 xff0c 和大多数教程一样 xff0c 主要记录下我遇到的问题 img2kvm报错 storage 39 vm 103 disk 0 39 does not exist 吐槽 xff1a 这玩意官网打不开 xff0
  • IOS学习笔记8—UITableViewController

    UITableViewController是IOS开发中一个比较重要的试图控制器 xff0c 是集成了UITableView视图的控制器 xff0c 在实际开发中经常用到 xff0c 功能非常强大 xff0c 可定制性也很高 xff0c 下
  • nanodet阅读:(2)正负样本定义(ATSS)

    一 前言 本篇博客主要是ATSS部分 xff0c 这部分个人认为是核心之一 xff0c 毕竟正负样本的选择很重要 xff0c ATSS论文证实 xff0c anchor based和anchor free性能差异的根本原因在于正负样本的定义
  • nanodet阅读:(3)Loss计算及推理部分

    一 前言 loss的计算是一个AI工程代码的核心之一 xff0c nanodet的损失函数与yolo v3 5系列有很大不同 xff0c 具体见Generalized Focal Loss xff0c 说实话一开始看这个损失函数博客 xff
  • nanodet阅读:(1)概述

    一 前言 出于某些需要 xff0c 阅读一下anchor free模型的代码 xff0c 因为之前用过nanodet xff0c 对其印象深刻 xff0c 所以重温一下代码 好记性不如烂笔头 xff0c 多记录 多总结 多分享 正如作者博客
  • c++循环引用

    虽然C 43 43 11引入了智能指针的 xff0c 但是开发人员在与内存的斗争问题上并没有解放 xff0c 如果我们使用 不当仍然有内存泄漏问题 xff0c 其中智能指针的循环引用缺陷是最大的问题 main cpp test Create
  • JupyterLab使用教程

    JupyterLab使用教程 一 Jupyter简介1 用户接口2 架构原理1 xff09 IPython Kernel2 xff09 Jupyter Notebook接口3 xff09 Notebook导出为其它格式4 xff09 Pro
  • Python虚拟环境(pipenv、venv、conda一网打尽)

    Python虚拟环境详解 一 什么是虚拟环境1 什么是Python环境2 什么是虚拟环境3 常用工具 二 pipenv1 安装pipenv2 命令概览3 pipenv基本使用1 xff09 创建虚拟环境2 xff09 激活虚拟环境3 xff
  • MERGE INTO用法更新和插入多条子记录

    lt update id 61 34 addMarkChild 34 parameterType 61 34 java util HashMap 34 gt MERGE INTO t kpi simu detail person dp US
  • 51 nod 1255 字典序最小的子序列

    http www 51nod com onlineJudge questionCode html problemId 61 1255 思路 xff1a 分三种情况 xff1a 1 xff1a 栈空 xff0c 直接将字母压入 2 xff1a