Leetcode 348:无重复最长子串-中位数-字符串转换整数

Posted hello,是翠花呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 348:无重复最长子串-中位数-字符串转换整数相关的知识,希望对你有一定的参考价值。

自己从0到1的思路,仅供参考:
一:无重复字符的最长子串

var lengthOfLongestSubstring = function(s) {
    var s1 = ''
    var s2 = ''
    var l = 0

    while(l < s.length) {
        for(var i=l;i<s.length;i++){
            if(!s1.includes(s[i])){
                s1 += s[i]
            } else {
                ++l
                if(s1.length > s2.length) {
                    s2 = s1
                    s1 = ''
                } else {
                    s1 = ''
                }
                break
            }
        }
       
    }

    return s2.length
};

二:寻找两个正序数组的中位数

var findMedianSortedArrays = function(nums1, nums2) {
    var arr = nums1.concat(nums2)
    arr.sort((a,b) => {
        if(a-b > 0) {
            return 1
        } else {
            return -1
        }
    })
    if(arr.length % 2 === 0) {
        var num = (arr[arr.length / 2 -1] + arr[arr.length / 2])/2
        return num
    } else {
        var num = arr[Math.floor(arr.length / 2)]
        return num
    }
};

三:字符串转换整数

var myAtoi = function(s) {
    var n1 = s.trimStart()

    if((!(/^\\d+/).test(n1) || (/ \\+ | \\- /g).test(s)) && !(/^\\d/).test(n1[1])){
        return 0
    }

    if(s.length<=1 && (s === '-' || s === '+')) {
        return 0
    }

    if((/\\d|\\+/g).test(n1[0])){
        var n2 = n1.match(/(\\d+)/g)[0]
        // 判断临界
        if(Number(n2) > (Math.pow(2, 31) - 1)) {
            return Math.pow(2, 31) - 1
        }
        return Number(n2)

    } else if(n1[0] === '-') {
        var n2 = n1.split(/\\-/g)[1].trimStart()
        // 如果字符串第一个字符是数字
        if((/\\d/g).test(n2[0])){
            var n3 = n2.match(/(\\d+)/g)[0] //匹配正负数,取第一组数字
            
            // 判断临界
            if(-Number(n3) < Math.pow(-2, 31)) {
                return Math.pow(-2, 31)
            }
            return -Number(n3)
        } else {
            return 0
        }
    } else {
        return 0
    }
};

以上是关于Leetcode 348:无重复最长子串-中位数-字符串转换整数的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode

3. 无重复字符的最长子串 4. 寻找两个正序数组的中位数 java

LeetCode 无重复字符的最长子串

LeetCode3. 无重复字符的最长子串

LeetCode——无重复字符的最长子串

leetcode-无重复字符的最长子串