趋势科技一道编程题
来源:互联网 发布:sql过安全狗 编辑:程序博客网 时间:2024/05/17 00:03
题目:编写一个函数int search(char *text),text为输入的字符串,从字符串中找出一个最长的不含重复字符的子字符串,例如“axdbx”,返回4,子字符串为“axdb”,而“axdbxce”,返回5,子字
符串为“dbxce”。
#include<iostream>#include<string>using namespace std;int search(char *text){int pos[256]; //映射到每一个字符,记录这个字符最近出现的位置int i,start,end,max,curlength;int curstart = 0;start = 0; //最长字符起始位置end = strlen(text);curlength = max = 0;for(i=0;i<256;i++) //辅助数组的初始化pos[i] = -1;for(i=1;i<end;i++){int index = text[i];if(pos[index]>=start)//如果此字符出现过{curlength = i - start;//得到这段字符串的长度if(curlength>max){start = curstart;max=curlength;}curstart = pos[index]+1; //新的字符串从下一个位置开始}pos[index] = i;//记录此字符最近出现位置}curlength = end - curstart;//最后处理if(curlength > start){max = curlength;start = curstart;//最后start保存的最长的子字符串的起始位置}return max;}int main(void){char *str="axdbxce";cout<<search(str)<<endl;return 0;}
- 趋势科技一道编程题
- 2018趋势科技编程题
- 趋势科技笔试题C++的一道题
- 趋势科技笔试题
- 趋势科技笔试题
- 趋势科技笔试题
- 趋势科技笔试题
- 趋势科技08笔试题
- 趋势科技笔试题1
- 趋势科技几道笔试题
- 趋势科技2014校园招聘笔试题
- 趋势科技2015笔试题-南京
- 2017趋势科技校园招聘算法题
- 趋势科技的一道面试题,自己做了一下,就当练练手
- 全志科技的一道笔试题
- 趋势科技面试
- 趋势科技应聘经历
- 趋势科技面试
- html 资源备份
- 开启我的CSDN博文之旅
- Mathematics for Computer Graphics
- 洛克菲勒:命运并非由出身决定
- Sql Server 2008 常用系统存储过程
- 趋势科技一道编程题
- win7下配置jdk
- 完成了coocs2d-x richtext 的封装
- smarty 在css中插入代码
- 有关C++指针
- 求一个正整数的各位数字之和
- AD RMS保护word
- 实现顺序表各种基本运算的算法
- c#自定义控件——ImageButton---饼形图的按钮