zoukankan      html  css  js  c++  java
  • 求无重复字符的最长子串

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

    输入: s = "abcabcbb"
    输出: 3 
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

        public static int lengthOfLongestSubstring(String s) {
            int start = 0;//储存字符串的起始下标
            int max = 0;//记录字符串最长长度
            for (int i = 0; i < s.length(); i++) {
                for (int j = start; j < i; j++) {
                    if (s.charAt(j) == s.charAt(i)) {
                        start = j + 1; //记录重复字符起始位置
                        break; //结束内层循环 继续比对
                    }
                }
                if (i - start + 1 > max) {
                    max = i - start + 1;
                }
            }
            return max;
        }
    
        //pwwkew
        public static int repetition(String s){
            int maxLen = 0; //最大长度
            int start = 0;  //查找下标开始位置
            int end = s.length();
            for (int i = 0; i < end; i++) {
                //从start开始查找并返回第i个字符第一次出现的位置下标
                int position = s.indexOf(s.charAt(i), start);
                if (position < i) {
                    // start 和 i 之间有重复字符 重置起始位置下标
                    start = position + 1;
                }
                //计算当前不重复的长度
                int currentLen = i - start + 1;
                maxLen = Math.max(currentLen, maxLen);
            }
            return maxLen;
        }
  • 相关阅读:
    java开发实战经典
    defer属性---->执行外部脚本
    深入理解JavaScript 模块模式
    JavaScript模块化开发一瞥
    缓存是新的内存
    php站点
    数据库
    .NET中使用Redis
    Scrum中的User Story
    如何编写敏捷开发中的user story
  • 原文地址:https://www.cnblogs.com/lfyu/p/14335226.html
Copyright © 2011-2022 走看看