在序列中找到符合某个条件的子序列
来源:互联网 发布:云端软件平台下载 编辑:程序博客网 时间:2024/05/16 16:04
// 在序列中找到符合某个条件的子序列 #include <iostream>using namespace std;int continumax(char *outputstr,char *inputstr);int main(){ char* str = "sadf2440353adfafd1212sfol;49018498"; //DEV C++和win7编译能过但运行就会挂; //实现有两种:char *str会把字符串当成常量;某些实现和java类似,str只有一个副本,更改会产生第二个副本 // str[3] = 'A'; char outputstr[100] = {}; int n = continumax(outputstr,str); cout<<n<<" "<< outputstr; cin.get(); }int continumax(char *outputstr,char *inputstr){ int max = 0; char* start = 0,*end=0; // used for search if(!inputstr) //null pointer return 0; while(*inputstr!='\0') { if(*inputstr<'0'||*inputstr>'9') { if(max<end-start+1&&start!=0) { max = end-start+1; for(char* iter=start;iter<=end;iter++) outputstr[iter-start] = *iter; } start = end = 0; }else { if(start==0&&end==0) start = end = inputstr; else end = inputstr; } inputstr++; if(*inputstr=='\0') { if(max<end-start+1&&start!=0) { max = end-start+1; for(char* iter=start;iter<=end;iter++) outputstr[iter-start] = *iter; } } } return max; }
从头开始往后循环,如果是非数字有两种情况,前面已经有起始点(start!=0)则表示找到一个序列看是否更长是就记录同时清空找到的序列位置,前面没有起始点则在排序不符合条件的序列什么都不干。
如果是数字则判断是否已经记录起始点,是则end++记录这个序列到底多长,不是则这个点是起始点start=end=这个点的位置。
- 在序列中找到符合某个条件的子序列
- 符合条件的最短序列
- 在一个乱序的数组中找到最长的递增子序列
- matlab产生符合某个分布的随机数序列
- 面试100题系列之11在树中找到符合条件的路径
- 找到符合条件的整数
- 找到符合条件的整数
- 最长上升子序列,输出长度和符合要求的子序列
- 查找某个数据,找到后把符合条件数据的一行复制到另外一个地方
- poj3080Blue Jeans(在m个串中找到这m个串的 最长连续公共子序列)
- 无序数组中找到最长连续子序列
- 在给定整数序列中,找出最大和的子序列...
- 编程练习:找到和最大的子序列
- 百田游戏2014笔试题——找到有序序列中某个值第一次出现的位置,并打印
- 算法:从序列里找到最长的以1降序的子序列
- 在asp.net中对符合条件的播放声音
- 用谓词在数组中取得符合条件的元素
- 13.在100-999中找出符合条件的数
- dsdgen+dsqgen安装
- 黑马程序员_加速Java应用开发速度3:单元/集成测试+持续集成
- Vim简明教程【CoolShell】
- 判断两个浮点数是否相等
- Android NDK 概述,翻译OVERVIEW.html整体了解NDK
- 在序列中找到符合某个条件的子序列
- uva-11234 Evaluating Simple C Expressions
- 黑马程序员_加速Java应用开发速度4:使用模板技术加速项目开发速度
- win7 64位+Oracle 11g 64位下使用PL/SQL Developer 的解决办法
- uva-839 Not so Mobile
- Android学习日志
- 黑马程序员_加速Java应用开发速度5:使用脚本自动化日常操作
- ubuntu 下友基数位板驱动 和配置
- json使用jsoncpp解析,简单方便