LeetCode-3 无重复字符的最长子串(Java实现)

LeetCode-3 无重复字符的最长子串(Java实现)

题目如下:
在这里插入图片描述

我的解决思路

定义一个遍历max来保存最大的子串长度,定义一个currentStr来保存当前的子串。以字符串"abcabcbb"为例:

  1. 取第一个字符a。a不在currentStr中,就将a添加到currentStr中,当前currentStr = “a”; max = 1;
  2. 取第二个字符b。b不在currentStr中,就将b添加到currentStr中,当前currentStr = “ab”;max = 2;
  3. 取第三个字符c。c不在currentStr中,就将c添加到currentStr中,当前currentStr = “abc”;max = 3;
  4. 取第四个字符a。a在currentStr中,将currentStr重置为"b"(第二个字符),重新从第二个字符b开始遍历;当前currentStr = “b”;max = 3;
  5. 取第三个字符c,c不在currentStr中,就将c添加到currentStr中,当前currentStr = “bc”;max = 3;
  6. 取第四个字符a,a不在currentStr中,就将c添加到currentStr中,当前currentStr = “bca”;max = 3;
  7. 取第五个字符b,b在currentStr中,将currentStr重置为"c"(第三个字符),重新从第三个字符c开始遍历;当前currentStr = “c”;max = 3;
  8. 取第四个字符a,a不在currentStr中,就将c添加到currentStr中,当前currentStr = “ca”;max = 3;
  9. 取第五个字符b,b不在currentStr中,就将c添加到currentStr中,当前currentStr = “cab”;max = 3;
    10.取第六个字符c,c在 currentStr中,就。。。。。。
    转换成代码如下所示:
public static int lengthOfLongestSubstring(String s) {
   
    int max = 0;
    StringBuilder str = new StringBuilder();
    for (int i = 0;i < s.length(); i++){
   
        if (str.indexOf(Character.toString(s.charAt(i))) == 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值