博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
连续子串
阅读量:4155 次
发布时间:2019-05-25

本文共 755 字,大约阅读时间需要 2 分钟。

由 26 个小写字母组成的 str,在 str中查找最长连续字符串不相同的子串。

如abcae, 连续子串是bcae

table记录的是字符最近出现的位置;

int maxDiff(char * str){    int table[26] = {-1};    memset(table,-1,sizeof(table));    int loop = 0;    int max_len = 0;    int tmp_len = 0;    int len = strlen(str);        table[str[0] - 'a'] = 0;    max_len = 1;    tmp_len = 1;    for (int i = 1; i < len ;++i) {       int last = table[str[i] - 'a'];       if (last == -1) {           tmp_len++;                  }       else if (i - tmp_len > last) {           tmp_len++;                 }       else {           tmp_len = i - last;                 }       table[str[i] - 'a'] = i;       if (max_len < tmp_len)           max_len = tmp_len;    }    return max_len;}int main() {//3*2     char *a = "abcae";   cout<
<

转载地址:http://mteti.baihongyu.com/

你可能感兴趣的文章
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
Ubuntu10.10 CAJView安装 读取nh\kdh\caj文件 成功
查看>>
kermit的安装和配置
查看>>
vim 配置
查看>>
openocd zylin
查看>>
进程创建时文件系统处理
查看>>
进程创建时信号处理函数处理
查看>>
进程创建时信号处理
查看>>
进程创建时内存描述符处理
查看>>
进程创建时命名空间处理
查看>>
进程创建时IO处理
查看>>
进程创建时线程栈处理
查看>>
进程创建时pid分配
查看>>
进程创建时安全计算处理
查看>>
进程创建时cgroup处理
查看>>
进程创建时共享内存处理
查看>>
idle进程创建
查看>>
内核线程创建
查看>>
linux elf tool readelf
查看>>