最长无重复子串的简单实现

最简单实现的必须要搞定,之后再说更高级的办法。

程序如果总是bug,不是你的问题,你只是需要一个break,否则就会一直呆在bug的死循环中。

解决问题最好的办法一定不是死磕到底,而是要学会放一放但不要放到遗忘,而要等待时机卷土重来。

int lengthOfLongestSubstring(string s) {
        if(s=="") return 0;
        int maxs(-1),cnt;
        array<int,256> mp;//c++11,need more insight
        int i,j;
        for(i=0;i<s.size();++i){ // O(n^2)
        	mp.fill(0);mp[s[i]]=1;
        	for(j=i+1;j<s.size();++j)
        	{
        		if(mp[s[j]]==0)mp[s[j]]=1;
        		else{
        			maxs=max(maxs,j-i);
        			break;
        		}
        	}
        	maxs=max(maxs,j-i); // DO NOT forget this! means: the substr from i to the end , no repeat
        }
        return maxs;
    }
时间: 2024-10-14 01:31:32

最长无重复子串的简单实现的相关文章

最长无重复子串的DP实现

这道题能算DP吗?那要看是否具备最优子结构.我的分析是没有明显的子结构性质. 例如当求下表为 i 的最长无重复子串时,要考虑两类情况. (1) s[ i ] 是否在字符串s之前的位置出现过,如果没有则长度 len++ : (2) 如果出现过,分两种情况讨论(是否出出现在当前处理的子串中)(len表示当前处理的子串的长度) a> 在.那好办,直接更新len = i -  (出现位置下标) : b>不在.更好办,直接更新 len++. 分析可见,并没有什么最优子结构,DP也谈不上吧. 数据结构:

python 实现最长无重复子串

eg: 输入:'a' 输出:1 输入:'aba' 输出:2 输入:'pwwag' 输出:3 # 最长无重复子串,注意是子串,不是所有的字符,也不是回文子串def demo(str): max_len=[] # 记录每次子串长度的值 e_len=0 #子串长度 dict={} #记录已经遍历过的元素 for i in range(len(str)): if str[i] not in dict: e_len += 1 dict[str[i]]=i max_len.append(e_len) els

字符串问题之 找到字符串的最长无重复子串

给定一个字符串str, 返回str的最长无重复字符子串长度 例如 str="abcd' 返回4 str="aabcb" 最长"abc" 返回3 解决本题的思路非常非常有趣,这种思路必须要学会: 本题目可以做到  时间复杂度O(N)  str长度N     空间复杂度O(M)  M是字符编码 根据字符编码 大小 申请 map  key表示字符  value表示最近出现的位置 int pre 遍历到的字符str[i] 以为str[i]结尾的最长无重复字符子串开

[LeetCode] Longest substring without repeating characters 最长无重复子串

Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest subst

[LeetCode] Longest Substring Without Repeating Characters最长无重复子串

Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest subst

字符串空格替换、合法括号序列判断、求最长无重复子串问题

一:字符串空格替换 将字符串中的空格全部替换为"%20".假定该字符串后面有足够的空间存放新增的字符. 如:Mr John Smith->Mr%20John 陷阱:Java玩家可能第一时间想到用split(" ")分割原字符串,然后重新拼接的时候在词间添加"%20".这种思路的不完善之处在于:如果原字符串以空格结尾.或者单词之间不止一个空格,则会导致拼接出来的字符串不符合要求. 解法:该题说明原字符串后面有足够空间(Java玩家可忽略,因为

Longest Substring Without Repeating Characters 字符串中最长的无重复子串长度

Longest Substring Without Repeating Characters Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the lengt

最长无重复字符子串

1 题目 Given a string,find the length of the longest substring without repeating characters. Forexample, the longest substring without repeating letters for"abcabcbb" is "abc", which the length is 3. For"bbbbb" the longest subs

[LeetCode] Longest Substring Without Repeating Characters 最长无重复字符的子串 C++语言 java语言实现

Given a string, find the length of the longest substring without repeating characters. Example 1: Input: "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2: Input: "bbbbb" Output: 1 Explana