练习题(4) -- 一道简单而有有趣的题目
2014-05-14 13:26
393 查看
PS: 因为最近一会儿用C++ 写程序,一会儿是python, 一会儿又是java,搞得我都有点语法错乱了。
题目如下:一个字符串形如 "yazyypta" 从这个字符串中删除任何字符,得到的字符串都是它的子字符串,比如对于这个字符串
"ya", "ayy", "pta" 都是它的子字符串,所有的子字符串按照字母序比较大小,求最大的大小最大的子字符串
举几个例子
1) abc
c
2) bcbxa
xa
3) bababa
bbba
解法提示:
要保证一个字符串最大,首先要保证这个字符串的第一个字符最大,然后是第二个字符最大。。。
因此可以联想到先找字符值最大的字符,然后从这个字符开始,向后寻找后续的那个字符串中,字符最大的字符
题目如下:一个字符串形如 "yazyypta" 从这个字符串中删除任何字符,得到的字符串都是它的子字符串,比如对于这个字符串
"ya", "ayy", "pta" 都是它的子字符串,所有的子字符串按照字母序比较大小,求最大的大小最大的子字符串
举几个例子
1) abc
c
2) bcbxa
xa
3) bababa
bbba
解法提示:
要保证一个字符串最大,首先要保证这个字符串的第一个字符最大,然后是第二个字符最大。。。
因此可以联想到先找字符值最大的字符,然后从这个字符开始,向后寻找后续的那个字符串中,字符最大的字符
#include <iostream> #include <string> using namespace std; string max_str(string &s){ int N = s.size(); int temp ; char ch='\0'; for(int i=N-1;i>=0;i--){ if(s[i]>=ch){ temp[i]=i; ch = s[i]; }else{ temp[i]=temp[i+1]; } } string res; for(int i=0;i<N;i++){ res += s[temp[i]]; i = temp[i]; cout<<res<<endl; } return res; } int main(){ string s = "yazyypta"; cout<<max_str(s)<<endl; }
相关文章推荐
- 一道简单题目的复杂算法
- 一道简单而又容易出错的题目
- 一道有趣的题目
- 一道简单点的面试题目
- 【题目29】一些简单的算法练习题(3)
- 呵呵,刚刚水了一道题目。简单题就要水!PKU2895,精简到70行代码!
- 一道简单的题目引发的思考
- 在CSDN上看到的一道有趣的网易笔试题目--附答案
- 百度笔试题2005题目大致是这样的: 第一部分选择题: 有几道网络相关的题目,巨简单,比如第一题是TCP、RIP、IP、FTP中哪个协议是传输层的......。有一道linux的 chown使用题目。其他的全是数据结构的题目!什么链,表
- 并查集的一道题目;发现可以用并查集就简单了;
- 一道简单而又容易出错的题目
- 一道简单的面试题目:输入1234输出1_2_3_4
- 一道有趣的题目,看看你的观点是分别开出拿些人?
- 一道简单的ACM题目学到的东西
- 一道简单的acm题目
- 一道简单而又容易出错的题目
- 一道有趣的C#考试题目
- 一道有趣的C#考试题目
- 【题目22】传说中的微软面试题一道(简单题)
- 一道简单的题目引发的思考