字典序最小问题 (贪心)
2016-02-29 10:07
169 查看
输入:
n=6
S="ACDBCB"
输出:
ABCBCD
不断取S的开头和末尾中较小的一个字符放到T的末尾
1.按照字典序比较S和将S反转后的字符串'S'.
2.如果S较小,就从S的开头取出一个文字,追加到T的末尾.
3.如果S较小,就从S的末尾取出一个文字,追加到T的末尾.
<<挑战程序设计竞赛>>读后感
n=6
S="ACDBCB"
输出:
ABCBCD
不断取S的开头和末尾中较小的一个字符放到T的末尾
1.按照字典序比较S和将S反转后的字符串'S'.
2.如果S较小,就从S的开头取出一个文字,追加到T的末尾.
3.如果S较小,就从S的末尾取出一个文字,追加到T的末尾.
const int MAX_N=100000; int N; char S[MAX_N]; void solve() { int a=0,b=N-1; while(a<=b){ //将从左起和右起的字符串比较 bool left=false; for(int i=0; a+i<=b; i++){ if(S[a+i]<S[b-i]){ left=true; break; } else if(S[a+i]>S[b-i]){ left=false; break; } } if(left) putchar(S[a++]); else putchar(S[b--]); } }
<<挑战程序设计竞赛>>读后感
相关文章推荐
- request.getParameter与request.getParameterNames以及request.getParameterValues的区别
- nodejs进程
- Cacti 系统批量添加Device脚本
- 数据库_基础知识_插入优化
- iOS开发常用之block传值
- iOS Keywords
- RxJava过滤操作符 debounce
- 接口回调的简单分析
- IE8补充前后缀快捷键
- Cocos2.2.3在线下载——断点续传
- iOS推送之远程推送
- ubuntu14.04+xfce下启用fcitx,使用中文输入法
- fuck自动纠错补全功能
- 产品经理反型记 | 解答新人面试中遇到的问题
- Postgresql---Peloton源码解读
- 探索大型网站技术架构(四)
- karaf 报错 Caused by: org.eclipse.jetty.io.EofException: early EOF
- JSP中页面向Action传递参数的几种方式
- 单调递增最长子序列
- java 实现多种排序