博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Longest Substring Without Repeating Characters--最长无重复字符串(重)
阅读量:4107 次
发布时间:2019-05-25

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

这个真没搞太懂 改天搞

题意: 最长的吴重复字符子串

当时我的思路是,利用have数组来记录当前字符最近一次出现的位置,假定从Position 之后的字符串都是无重复的。

如果遍历到的当前字符的have[s[i]] 小于position,那么说明该字符在position之后没有出现过,无重复,那么更新have[s[i]] = i 当前的位置。

如果遍历到的当前的字的have[s[i]] 大于position, 那么说明该字符在position之后出现重复,需要计算该段无重复字符串的长度 = i - position。 同时,更新position为该重复出现的字符的上一次出现的位置 position = have[s[i]]。 更新该字符的新位置have[s[i]] = i;  更新最大值。

class Solution {public:    int lengthOfLongestSubstring(string s) {        int have[256], len,len1,len2;        int max = 0, position = 0;        memset(have,0,256*sizeof(int));        for(int i = 0; i < s.length(); i++)        {			if(i == s.length()-1)			{				if(have[s[i]] <= position)				{					len = i+1-position;					max = len > max ? len : max;				}			}			if(have[s[i]] <= position)			{				have[s[i]] = i+1;			}			else			{				len = i-position;				max = len > max ? len : max;				position = have[s[i]];				have[s[i]] = i+1;			}		//	cout << i+1 << "\t" << s[i] << "\t" <
<< "\t" << position << endl; } return max; }};

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

你可能感兴趣的文章
内容里面带标签,在HTML显示问题,JSTL
查看>>
VS编译器运行后闪退,处理方法
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
idea 有时提示找不到类或者符号
查看>>
ng-class的几种用法
查看>>
node入门demo-Ajax让前端angularjs/jquery与后台node.js交互,技术支持:mysql+html+angularjs/jquery
查看>>
神经网络--单层感知器
查看>>
注册表修改DOS的编码页为utf-8
查看>>
matplotlib.pyplot.plot()参数详解
查看>>
拉格朗日对偶问题详解
查看>>
MFC矩阵运算
查看>>
最小二乘法拟合:原理,python源码,C++源码
查看>>
ubuntu 安装mysql
查看>>
c# 计算器
查看>>
C# 简单的矩阵运算
查看>>
gcc 常用选项详解
查看>>
c++输入文件流ifstream用法详解
查看>>
c++输出文件流ofstream用法详解
查看>>
字符编码:ASCII,Unicode 和 UTF-8
查看>>
firewalld的基本使用
查看>>