leetcode
来源:互联网 发布:零基础学算法第一章 编辑:程序博客网 时间:2024/06/05 08:25
1. 题目
Given a string, find the length of the longest substring without repeating characters.
Examples:
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 3. Note that the answer must be a substring, "pwke"
is a subsequenceand not a substring.
2. 关键算法
双指针
3. 代码实现
import java.util.HashMap;/** * @author: UniqueZ_ * @file: leetcode - length of longest substring without repeating characters * @date: 2017-07-28 */public class LongestSubstring {public int lengthOfLongestSubstring(String s) {int begin = 1, end = 0;int strLength = s.length();HashMap<Integer, String> result = new HashMap<>();int returnVal = 1;// 字符串小于等于1if (strLength <= 1) {result.put(strLength, s);return strLength;}while (begin < strLength) {System.out.println(begin);String currentStr = s.substring(end, begin);String currentChar = s.substring(begin, begin+1);// 当前begin对应的字符, 出现在当前begin - end之间的字符串if (currentStr.contains(currentChar)) {result.put(begin - end, currentStr);end++;continue;}begin++;// begin达到字符串结尾时, 把当前字符串送进哈希表if (begin == strLength) {result.put(begin - end, s.substring(end, begin));}}// 如果哈希表为空, 将整个字符串放进哈希表if (result.isEmpty()) {result.put(strLength, s);}// 获取最大长度for (Integer key: result.keySet()) {if (returnVal < key) {returnVal = key;}}return returnVal;}public static void main(String[] args) {String s = "abcabcbb";LongestSubstring obj = new LongestSubstring();obj.lengthOfLongestSubstring(s);}}
阅读全文
0 0
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- leetcode
- SpringBoot_restful
- 数据库基础知识
- VideoView视频大小屏切换/缓冲/卡顿监听和处理
- 回文寻找
- 基于docker的codis3部署
- leetcode
- 《笨办法学python》加分习题7——我的答案
- 基本数据类型
- Windows下MySql错误代码1045的解决方法
- 发现一个好玩的网页
- Mac 忘记root密码解决方法--Star.hou
- 2017年8月9日 星期三
- Unmarshaller转换xml到对像为空的问题
- IDEA 运行文件时报错Error:java: Compilation failed: internal java compiler error