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

    1:题目:输入: "abcabcbb"

                    输出: 3

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

            //穷举出所有的字符串(i,j两次循环)[I,j]就可以表示所有子串的情况

    思路:判断是否唯一,跳出循环

    //掏出循环思考了好久,abcbe  为何b包含在abc中直接跳出因为be其实在b这个位置的索引已经不能使用因为他不是唯一的,而且be其实[4,5]已经在后面穷举了所以,直接跳出循环判断。

    /**

     * @param {string} s

     * @return {number}

     */

    var lengthOfLongestSubstring = function (s) {
        if (s == "") {
            return 0;
            //简单判断空字符串退出
        }
        var str = "", len = 1;
        //str存放字符串,len用来记录长度
        // [i,j]表示字符串开头到结尾的字符 j-i+1表示长度
        for (var i = 0; i < s.length; i++) {
            str = s[i];
            //开头的起始位置
            for (var j = i + 1; j < s.length; j++) {
                if (s[i] == s[j] || str.indexOf(s[j]) != -1) {
                	//s[i] == s[j] || str.indexOf(s[j]) != -1
                	//判断后面加入的字符串是否在前面的数组中,如果是则后面都不用判断直接跳出
                	// abcb abcbad abcb直接跳出不用判断 abcdad原因,包含前面的都不需要判断因为有重复 a,ab,abc,abcb,abcbd 都是一样的
                    break;
                }
                str += s[j];
                if (j - i + 1 > len) {
                    len = j - i + 1;
                }
            }
        }
        return len;
    };
    

      

  • 相关阅读:
    Android手机 Fildder真机抓包
    android显示当前时间
    SlidingMenu实现app侧滑功能
    Android 带checkbox的listView 实现多选,全选,反选
    android记住密码和自动登陆
    判断是否第一次进入系统
    #10002 喷水装置
    Codeforces Round #503 (by SIS, Div. 2) C. Elections (暴力+贪心)
    P2024 [NOI2001] 食物链
    P2814 家谱
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/10125762.html
Copyright © 2011-2022 走看看