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:无重复最长子串-中位数-字符串转换整数的主要内容,如果未能解决你的问题,请参考以下文章