华为2014年机试样题 求最大递增数
2014-03-19 20:32
691 查看
//求最大递增数 #include "stdio.h" #include <iostream> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #include<assert.h> using namespace std; const int MAX = 20005; bool check(int length, int maxleng, int i, int pos, char* s) { if(length > maxleng) return true; if(length == maxleng){ for(int j=0; j<maxleng; j++){ if(s[pos++] > s[i-maxleng+j+1]) return false; } } if(length < maxleng) return false; } void find(char *s) { int maxleng = 0; int length = 1; int pos = 0; int i = 0; while(s[i] !='\0') { if((s[i])<'0'||(s[i]>'9')) { assert(0); } if((s[i+1]-'0') > (s[i] -'0')) { length++; i++; continue; } if(check(length, maxleng, i, pos, s)) { maxleng = length; pos = i -maxleng; pos++; length = 1; i++; continue; } i++; length = 1; } for(int j =0; j < maxleng; j++) { printf("%c",s[pos++]); } } int main( ) { char s[100]; scanf("%s",s); find(s); return 0; }
虽然题目不难,不过细节还是要注意的,提交了11次才用例全过。
相关文章推荐
- Linux C函数参考手册(PDF版)
- 动易2006序列号破解算法公布
- 华为路由器密码恢复
- 华为交换机的后缀详解
- C#数据结构与算法揭秘二
- C#实现打造气泡屏幕保护效果
- C/C++数据对齐详细解析
- 浅析STL中的常用算法
- C 语言基础教程(我的C之旅开始了)[三]
- C 语言基础教程(我的C之旅开始了)[七]
- C/C++ 宏详细解析
- 用C#生成不重复的随机数的代码
- JavaScript 组件之旅(二)编码实现和算法
- 在c和c++中实现函数回调
- 浅析C/C++中被人误解的SIZEOF
- C 语言基础教程(我的C之旅开始了)[六]
- java数据结构和算法学习之汉诺塔示例
- python基础教程之python消息摘要算法使用示例
- C/C++函数调用的几种方式总结