代码先锋网 代码片段及技术文章聚合

面试题改编:给定一个字符串,请你找出其中重复字符的最长子串

技术标签: 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、给定一个字符串,请你找出其中重复字符的最长子串的长度

版权声明:本文为qq_42449963原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42449963/article/details/106673220

智能推荐

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例...

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例...

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 示例 2: 示例 3: 请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。 第一次一次性通过所有测试用例!!!!!!!!!!!!!!!!!!!!...

【oc算法】给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 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++实现给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

C++实现给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所...

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

本题的主要思想是滑动窗口 什么是滑动窗口? 其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列! 如何移动? 我们只要把队列的左边的元素移出就行了,直到满足题目要求! 一直维持这样的队列,找出队列出现最长的长度时候,求出解!...