技术标签: java学习之路
题目:
示例 1:
输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “bb”,所以其长度为 2。
示例 2:
输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “bbbbb”,所以其长度为 5。
示例 3:
输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “ww”,所以其长度为 2。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。
代码:
public class Test {
public static void main(String[] args) {
System.out.println(toString("bbbdde"));
}
public static String toString(String s) {
int n = s.length();
String maxString = "";
for (int i = 0; i < n; i++) {
StringBuffer sb = new StringBuffer();
for (int j = i; j < n; j++) {
if (!sb.toString().contains(String.valueOf(s.charAt(j)))) {
if (sb.toString().length() == 0) {
sb.append(s.charAt(j));
maxString = sb.toString().length() - maxString.length() > 0 ? sb.toString() : maxString;
} else {
break;
}
} else {
sb.append(s.charAt(j));
maxString = sb.toString().length() - maxString.length() > 0 ? sb.toString() : maxString;
}
}
}
return maxString;
}
}
结果:
bbb
延伸:
1、给定一个字符串,请你找出其中不含有重复字符的最长子串的长度
2、给定一个字符串,请你找出其中不含有重复字符的最长子串
3、给定一个字符串,请你找出其中重复字符的最长子串的长度
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例...
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例...
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 示例 2: 示例 3: 请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。 第一次一次性通过所有测试用例!!!!!!!!!!!!!!!!!!!!...
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b"...
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例...
我的菜鸡写法 复杂度比较高 执行用时 :464 ms, 在所有 javascript 提交中击败了12.80%的用户 内存消耗 :55.9 MB, 在所有 javascript 提交中击败了9.17%的用户...
算法分析: 1、以字符串“abcabcd”为例,最长不重复子串是后四位“abcd”; 算法实际上跟冒泡法排序类似: 需要从第1位开始遍历第0位字符串,二者不同则记录长度,例如:b与a比较。 需要从第2位开始遍历第0-1位字符串,均不同则记录长度,例如:c与a,b比较。 ..... 需要从第n位开始遍历第0-(n-1)位字符串,均不同则记录长度,例如:...
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 思路: 1、首先两层循环是不可避免的,用来遍历字符串开头和结尾的下标。 2、从第一层循环内部来看,实质上是每次找出以当前节点为终点的满足条件的最大长度 3、如果在内部循环时发现某节点和当前外层节点字符一样,那么意味着下次可以以这个节点后一个为起点。这一点需要考虑清楚。 LeetCode解题...
C++实现给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所...
本题的主要思想是滑动窗口 什么是滑动窗口? 其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列! 如何移动? 我们只要把队列的左边的元素移出就行了,直到满足题目要求! 一直维持这样的队列,找出队列出现最长的长度时候,求出解!...