字典序最小问题--贪心入门
2016-03-14 23:18
239 查看
// greedy 贪心算法 // 贪心算法是求当前最优解 // 题目:输入一个整数,然后在输入N长度的字符串,每次从字符串开头或者末尾取一个字母, // 组成新的字符串,组成字符串的字典序最小 // 例:输入:6 // ACDBCB // 输出: ABCBCD #include <iostream> using namespace std; int main() { int N; while(cin >> N && N) { char str[N + 1]; cin >> str; int a = 0, b = N - 1; while(a <= b) { bool left = false; for(int i = 0; a + i <= b; i++) { if(str[a + i] < str[b - i]) { left = true; break; } else if(str[a + i] > str[b - i]) { left = false; break; } } if(left) cout << str[a++]; else cout << str[b--]; } } return 0; } // 思路:比较两边的字典序大小,哪边小就取哪边 // 如果开头与末尾相同的话,就将字符串str与其反序比较,当比较到有一个小的时候,就选那个 // 如果相同则无所谓取哪一个
相关文章推荐
- 即时通讯:前言
- BCB/Delphi中常用的VCL函数说明(字符串函数)
- 《内核设计与实现》第一章读书笔记
- 金融概念
- Java Socket编程
- allegro 自动批量创建device文件
- LINQ
- gulp下静态资源的合并、压缩、MD5后缀
- Android 图片加载库Glide
- Eclipse 发布web项目到Tomcat【错误总结】
- TabLayout的使用
- DAO与DTO的区别是什么
- 关于SB的Layout优先级(priority)
- python多继承(新式类)一
- 3月14日 Android面试总结
- 贪心,布置作业
- 手机情景模式判断
- MySQL数据库引擎介绍
- JVM 调优 —— 新生代 Survivor 空间不足
- 面试记录