Describe
给一定长为N的字符串S,构造一个字符串T,长度也为N;
对于空串T,反复进行下列任意操作
1、从S的头部删除一个字符,加到T的尾部;
2、从S的尾部删除一个字符,加到T的尾部;

目标是生成的字符串T的字典序尽可能小;

字符串S只包含大写英文字母

Input:字符串S
Output:字符串T

Example
Input: ACDBCB
Output:ABCBCD

Thinking

即每次只需比较两端,取较小字符,若两端字符相等,则继续向内比较,取较小一端的若干个字符;

这里的一个技巧就是创建S的反转复制品S‘,这样就只要比较S和S‘左端的若干字符即可,在count达到字符串长度时返回结果即可;
S: A C D B C B
S’:B C B D C A

int main()
{string s="ACDBCB", ss, t;int len = s.size();for (int i = len - 1; i >= 0; i--)//将s反转拷贝到ss中{ss.push_back(s[i]);}while (t.size() < len){if (s.compare(ss) > 0)//s比ss大{t.push_back(ss[0]);ss.erase(ss.begin()); //删除ss第一个元素}else{t.push_back(s[0]);s.erase(s.begin());}}cout << t << endl;return 0;
}

Algorithm:字典序最小问题相关推荐

  1. UVA116 单向TSP Unidirectional TSP(多阶段决策问题、输出字典序最小的方案、DAG上DP)

    整理的算法模板合集: ACM模板 题目传送门 简单的多阶段决策问题. 多段图DAG,其节点可以划分为若干个阶段,每一个阶段只由上一个阶段所决定. 因为本题要求输出从前到后的方案,所以我们转移方程的时候 ...

  2. UVA10537 The Toll! Revisited (思维、最短路、输出字典序最小路径)

    整理的算法模板合集: ACM模板 题目链接 我们要注意去的时候交的n/20单位的货物,但是倒着回去求答案的时候我们要加上ceil(n/19.0)(自己手算) 字典序中大写字母比小写字母更小 注意看数据 ...

  3. 字符串互换后字典序最小

    问题:给出一个字符串,以及可以互换的位置对,求出互换后字典序最小的. 比如给出字符串dcab,以及可以互换的位置对[[0,3],[1, 2],[0, 2]],则互换后字典序最小的是abcd 思路:第一 ...

  4. HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)...

    HDU6301.Distinct Values 这个题就是给你区间要求区间内的数都不相同,然后要求是字典序最小,直接贪心走一遍,但是自己写的时候,思路没有错,初始化写挫了... 将区间按左端点小的排序 ...

  5. 拓扑排序(字典序最小,字典序最小)

    E. Minimal Labels 题意: 给出 m 条有向边,组成有向无环图,输出一个 1 到 n 组成的排列,每个数只能出现一次,表示每个点的标号.如果有边 (u,v)(u,v) 那么 label ...

  6. 中石油训练赛 - Swapping Places(字典序最小的拓扑排序)

    题目链接:点击查看 题目大意:给出 s 个字符串表示种类,再给出 m 个朋友关系,表示两个种类的动物是朋友,现在给出一个长度为 n 的种类排列,规定相邻两个是朋友的种类的动物可以交换位置,问如何操作, ...

  7. 字典序最小问题(贪心)

    题目大意:输入n,代表有一个长度为n的字符串. 起初,T是一个空串,随后反复进行下列任意操作: 从S 的头部删除一个字符,加入到T的尾部' 从S的尾部删除一个字符,加入到T的尾部 目的是构造字典序尽可 ...

  8. 【挑战程序设计竞赛】- 2.2贪心法(硬币最少、区间覆盖、字典序最小、标记最少、木板切割)

    四年前犯的错再做一遍还是会犯. 四年前不看presentation要求,四年后依然PE. 四年前忘记longlong,四年后还是会忘. 2.2 贪心法 核心思想:不断选取最优策略. 例题1-硬币:有1 ...

  9. 背包问题 输出方案、输出字典序最小方案、可行方案数、最优方案总数

    原文地址:https://blog.csdn.net/ronaldo7_zyb/article/details/81069906 1. 要求输出方案: 以01背包为例 我们可以知到,01背包用一维数组 ...

  10. hdu 1814 字典序最小的2sat(暴力深搜)

    题意:      题意就是最基础的2sat,关系只有矛盾关系,然后二选一,关键是这个题目是输出字典序最小的那组解. 思路:      输出字典序最小,用强连通那个实现不了(起码没看到有人实现),其实我 ...

最新文章

  1. 笔记,提醒,pytorch安装命令(conda)
  2. 初学web标准的几个误区
  3. windows 2008 开机启动 Docker Toolbox 并运行容器
  4. OData metadata 定义中,entity type key 的作用是什么
  5. android java内存 c内存_Android NDK java和C\C++交互 | 学步园
  6. 拒绝云服务商白嫖,Elasticsearch 和 Kibana 变更开源许可协议
  7. 实现输入界面适应键盘的显示和隐藏事件
  8. linux 多线程基础3
  9. CLR via C#, Third Edition图书推荐及下载
  10. 一脸懵逼的算法系列之汉诺塔
  11. W32Dasm缓冲区溢出分析【转载】
  12. docker-compose 启动顺序的问题depends_on
  13. Word文档转/打印成PDF图片模糊问题解决
  14. 《人性的弱点》(戴尔-卡耐基)读书小结
  15. swper插件:刷新页面,banner轮播图出不来
  16. Java学习从这里开始
  17. 嵌入式Linux工程师的成长经历
  18. 【高效办公】Everything高效应用案例——软件基本信息篇
  19. 5G的关键技术与所面临的挑战
  20. jsp教学网站百度文库_精品课程JSP教学网站的评价研究

热门文章

  1. [ARM] ARM处理器寻址方式
  2. Hyper-v 虚拟机使用NAT方式连接网络
  3. 【HLSDK系列】服务端 AddToFullPack 函数
  4. Linux学习之Vim使用
  5. android定义dialog
  6. JAVA ------- eclipse使用的步骤: %## 使用小技巧 ##%
  7. c#数据类型的值传递和引用传递--基础拾遗
  8. 通过layout进行适配遇到的一点小问题及解决方案
  9. 有道词典Mac版崩溃信息
  10. poj 1005 I Think I Need a Houseboat