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

题意:中文题诶~

思路:对于当前字符 s[i],若其不在栈中,将其与栈顶元素比较,若 s.top() > s[i],则退栈至s.top() < s[i] 或者 i 后面不存在字符 s.top(),再将 s[i] 入栈;

先预处理一个 tag[i][j] 子串 s[i....n-1]有多少字符 j ;

代码:

 #include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std; const int MAXN = 1e5+;
int tag[MAXN][], vis[], indx = ;
char q[]; int main(void){
string s;
cin >> s;
for(int i = s.size() - ; i >= ; i--){
for(int j = ; j < ; j++){
if(j == s[i] - 'a') tag[i][j] = tag[i + ][j] + ;
else tag[i][j] = tag[i + ][j];
}
}
for(int i = ; i < s.size(); i++){
if(!vis[s[i] - 'a']){
while(indx > ){
int cnt = q[indx] - 'a';
if(cnt < s[i] - 'a' || tag[i + ][cnt] == ) break;
--indx;
vis[cnt] = ;
}
q[++indx] = s[i];
vis[s[i] - 'a'] = ;
}
}
for(int i = ; i <= indx; i++){
printf("%c", q[i]);
}
puts("");
return ;
}

最新文章

  1. SQL存储过程分页(通用的拼接SQL语句思路实现)
  2. Java EE 和 Java Web
  3. 3 EventTime 事件时间类和TimeNow函数——Live555源码阅读(一)基本组件类
  4. angular学习-入门基础
  5. PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can&#39;t connect to local MySQL server through socket &#39;MySQL&#39; (2)
  6. Qt与VS2005/2008的完美配合(自己编译Qt4.5.1的详细步骤)
  7. JS判断浏览器是否安装flash插件
  8. JAVA关系运算符
  9. 做什么都要坚持,写blog也一样,
  10. ThinkPhp关闭Debug后出错解决方案
  11. CentOS 7.6下解决登录MySQL时,ERROR 1045 (28000): Access denied for user root@localhost (using password: YES
  12. go-无法下载websocket的问题
  13. Intellij IDEA使用Docker插件部署应用
  14. OK6410移植linux3.3.1
  15. sitecore系统教程之Item快速了解
  16. fb 4.7英文版 修改字体大小
  17. MySQL1安装
  18. Continuous Integration for iOS Apps with Visual Studio Team Services
  19. 深入理解朴素贝叶斯(Naive Bayes)
  20. HDU 2176 基础NIM 输出方案

热门文章

  1. (转)javascript中call()、apply()、bind()的用法
  2. Java for LeetCode 116 Populating Next Right Pointers in Each Node
  3. Codeforces Round #551 (Div. 2) A~E题解
  4. 51Nod 1486 大大走格子 —— 组合数学
  5. TopCoder SRM420 Div1 RedIsGood —— 期望
  6. css3-rotate实现超炫环形旋转特效
  7. 杂草丛生HTML5网站模板
  8. Facebook的实时流处理技术——Scuba是Facebook的一个非常快速、分布式的内存数据库,用于实时分析和查询
  9. codeforces 660B B. Seating On Bus(模拟)
  10. linux命令学习笔记(54):ping命令