51nod1255(栈)
2024-10-20 03:48:11
题目链接: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 ;
}
最新文章
- SQL存储过程分页(通用的拼接SQL语句思路实现)
- Java EE 和 Java Web
- 3 EventTime 事件时间类和TimeNow函数——Live555源码阅读(一)基本组件类
- angular学习-入门基础
- PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can&#39;t connect to local MySQL server through socket &#39;MySQL&#39; (2)
- Qt与VS2005/2008的完美配合(自己编译Qt4.5.1的详细步骤)
- JS判断浏览器是否安装flash插件
- JAVA关系运算符
- 做什么都要坚持,写blog也一样,
- ThinkPhp关闭Debug后出错解决方案
- CentOS 7.6下解决登录MySQL时,ERROR 1045 (28000): Access denied for user root@localhost (using password: YES
- go-无法下载websocket的问题
- Intellij IDEA使用Docker插件部署应用
- OK6410移植linux3.3.1
- sitecore系统教程之Item快速了解
- fb 4.7英文版 修改字体大小
- MySQL1安装
- Continuous Integration for iOS Apps with Visual Studio Team Services
- 深入理解朴素贝叶斯(Naive Bayes)
- HDU 2176 基础NIM 输出方案
热门文章
- (转)javascript中call()、apply()、bind()的用法
- Java for LeetCode 116 Populating Next Right Pointers in Each Node
- Codeforces Round #551 (Div. 2) A~E题解
- 51Nod 1486 大大走格子 —— 组合数学
- TopCoder SRM420 Div1 RedIsGood —— 期望
- css3-rotate实现超炫环形旋转特效
- 杂草丛生HTML5网站模板
- Facebook的实时流处理技术——Scuba是Facebook的一个非常快速、分布式的内存数据库,用于实时分析和查询
- codeforces 660B B. Seating On Bus(模拟)
- linux命令学习笔记(54):ping命令