您当前的位置: 首页 >  leetcode

小志的博客

暂无认证

  • 1浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

leetCode第3题(找出字符串中不含有重复字符的最长子串的长度)

小志的博客 发布时间:2021-07-27 22:46:03 ,浏览量:1

目录
    • 一、题目
    • 二、题目代码解析

一、题目

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

示例1 输入: str=“abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是"abc",所以其长度为3

示例2 输入: str=“bbbbb” 输出: 1 解释:因为无重复字符的最长子串是"b",所以其长度为1

示例3 输入: str=“pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是"wke",所以其长度为3

示例4 输入: str="" 输出: 0

二、题目代码解析
package com.xz.leetcode.day3;

import java.util.HashSet;
import java.util.Set;

/**
 * @description: 给定一个字符串str,请你找出其中不含有重复字符的最长子串的长度
 *
 *              示例1
 *              输入: str="abcabcbb"
 *              输出: 3
 *              解释: 因为无重复字符的最长子串是"abc",所以其长度为3
 *
 *              示例2
 *              输入: str="bbbbb"
 *              输出: 1
 *              解释:因为无重复字符的最长子串是"b",所以其长度为1
 *
 *              示例3
 *              输入: str="pwwkew"
 *              输出: 3
 *              解释: 因为无重复字符的最长子串是"wke",所以其长度为3
 *
 *              示例4
 *              输入: str=""
 *              输出: 0
 * @author: xz
 * @create: 2021-07-27 22:11
 */
public class Demo {
    public static void main(String[] args) {
        String str="abcabcbb";
        int length=lengthOfLongestSubString(str);
        System.out.println("不含有重复字符的最长子串的长度: "+length);
    }

    public static int lengthOfLongestSubString(String str){
        //定义一个哈希集合,记录每个字符是否出现过
        Set set =new HashSet();
        //右指针的初始值为0,相当于我们在字符串的左边界第一个字符
        int rk =0;
        //最长子串的长度,初始值为0
        int ans=0;
        for(int i=0;i            
关注
打赏
1661269038
查看更多评论
0.1952s