
一.算法题 题目 Given a string, find the length of the longest substring without repeating characters. Example Given 'abcabcbb', the answer is 'abc', which the length is 3. Given 'bbbbb', the answer is 'b', with the length of 1. Given 'pwwkew', the answer is 'wke', with the length of Note that the answer must be a substring, 'pwke' is a subsequence and not a substring.
二.算法题解读 题目大意:给定一个字符串,找出不含有重复字符的最长子串的长度 解读Example 给定'abcabcbb',没有重复字符的最长子串是'abc',那么长度就是3 给定'bbbbb',最长子串就是'b',长度就是1 给定pwwkew,最长子串就是'wke',长度为3, 注意,必须是一个子串.'pwke',是子序列,而不是子串
三.优化'滑动窗口'解决思路 到底如何在滑动窗口方法上优化了? 实际上我们可以如果采用进一步优化,可以达到只需要N次即可计算成功.我们可以定义字符到索引映射.而不是使用集合来判断这个字符的存在与否.当遇到重复的字符时,我们即可跳过该滑动窗口. 也可以理解为,如果s[j] 在[i,j) 的范围内有与j' 重复的字符.我们不需要逐渐增加i .而是直接跳过[i,j'] 范围内的所有元素.并将i 变成为j'+1 就可以做到. 四.代码实现 Java code 
五.使用ASCII 128码 思路 字符串,其实由字符构成.而字符则可以用ASC码来替代.如此,我们可以用整数数组作为直接访问表来替换Map. 常用表如下:
int [26],用于表示字母 'a' - 'z' 或 'A' - 'Z' ;
int [128],用于表示ASCII码
int [256],用于表示扩展ASCII码
A = 65, a = 97 
六.代码实现java code 
小编OS:如有疑问,留言即可.胖C会利用空余时间给大家做一个简单解答的. 持续更新关注公众号!
|