【LeetCode】003 Longest Substring Without Repeating Characters 最长的没有重复的子字符串
来源:互联网 发布:linux tgz 编辑:程序博客网 时间:2024/06/06 03:14
【LeetCode】003 Longest Substring Without Repeating Characters
题目
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 subsequence and not a substring.
思路
AC
import java.util.*;public class Solution { // 超时,不通过 public int lengthOfLongestSubstring0(String s) { int maxLen = 0; List<Character> subList = new ArrayList<>(); for (int i = 0; i < s.length(); i ++){ char ch = s.charAt(i); int index = subList.indexOf(ch); if (index != -1){ if (maxLen < subList.size()) maxLen = subList.size(); if (index == subList.size()-1) subList.clear(); else subList = subList.subList(index+1, subList.size()); } subList.add(ch); } if (maxLen < subList.size()) maxLen = subList.size(); return maxLen; } public int lengthOfLongestSubstring(String s) { int maxLen = 0; StringBuilder sub = new StringBuilder(s.length()); int fromIndex = 0; for (int i = 0; i < s.length(); i ++){ char ch = s.charAt(i); int index = sub.indexOf(ch+"", fromIndex); // 重复“字符”(字符串)的位置 if (index != -1) fromIndex = index+1; // 不断调整起始下标 sub.append(ch); int len = sub.length() - fromIndex; // 总长度 - 起始下标 = 当前子字符串的长度 if (maxLen < len) maxLen = len; } return maxLen; }}
阅读全文
1 0
- 【LeetCode】003 Longest Substring Without Repeating Characters 最长的没有重复的子字符串
- Leet Code 3. Longest Substring Without Repeating Characters (最长的没有重复字符的子字符串)
- 没有重复字符的最长子字符串(Longest Substring Without Repeating Characters)
- LeetCode 题解 3. Longest Substring Without Repeating Characters(最长不含重复字符的子字符串)
- leetcode:Longest Substring Without Repeating Characters (寻找最长无重复字符的子串)
- LeetCode OJ 之 Longest Substring Without Repeating Characters (无重复的最长子串)
- [Leetcode #3]Longest Substring Without Repeating Characters 无重复字符的最长子串
- LeetCode 3. Longest Substring Without Repeating Characters--不包含重复字符的最长子串长度
- LeetCode-3:Longest Substring Without Repeating Characters (最长无重复字符的子串) --medium
- Longest Substring Without Repeating Characters 字符串中最长的无重复子串长度
- 3. Longest Substring Without Repeating Characters 无重复字符的最长子字符串
- 【LeetCode-面试算法经典-Java实现】【003-Longest Substring Without Repeating Characters(最长非重复子字符串)】
- Longest Substring Without Repeating Characters求最长子串中没有重复字母的最长长度
- Longest Substring Without Repeating Characters 不含重复字符的最长子串
- Longest Substring Without Repeating Characters (返回最长无字符重复的子串长度)
- Longest Substring Without Repeating Characters (最长不重复字符的子序列) Java-O(n)解法
- Longest Substring Without Repeating Characters (最长无重复字符的子串)
- Longest Substring Without Repeating Characters 最长不重复的子串
- FM算法和fastFM包的使用介绍
- word2vec数学原理详解
- python插入数据库和生成插入sql
- Android Apache HttpClient
- Keras设定GPU使用内存大小(Tensorflow backend)
- 【LeetCode】003 Longest Substring Without Repeating Characters 最长的没有重复的子字符串
- Microsoft Edge 浏览器远程代码执行漏洞POC及细节(CVE-2017-8641)
- eoj 3328 时空交织的代价(树状数组)
- 百度地图LocType=162引发的坑------>>libs和jniLibs的区别
- 1px(1像素)边框问题
- JAVA互联网架构学习之SpringMVC其三
- 网站建设公司该不该把web前端外包出来!精辟
- LDA(Latent Dirichlet Allocation)简介
- spark-streaming 编程(四)自定义输出foreachRDD