Leetcode 51420:最长回文子串-最长公共前缀-有效括号
Posted hello,是翠花呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 51420:最长回文子串-最长公共前缀-有效括号相关的知识,希望对你有一定的参考价值。
自己的思路,仅供参考。
一。给你一个字符串 s,找到 s 中最长的回文子串。
/*给你一个字符串 s,找到 s 中最长的回文子串。*/
function longestPalindrome(s)
if (s.length === 1)
return s
if (isReverse(s))
return s
let len = 0
let newS = s
let str = ''
let sLength = s.length - 1
let n = Math.floor(s.length / 2) // 9/2=4.5
let m = 0
while (m <= n)
let ss = newS.slice(m, -m)
if (isReverse(ss))
if (ss.length > len)
len = ss.length
str = ss
m++
let i = 0
while (i < sLength)
let ss = newS.slice(i)
if (isReverse(ss))
if (ss.length > len)
len = ss.length
str = ss
i++
let j = sLength
while (j >= 0)
let ss = newS.slice(0, -j)
if (isReverse(ss))
if (ss.length > len)
len = ss.length
str = ss
j--
let h = 0
let ss
let u = sLength
while (u >= 0)
for (h = 0; h < sLength; h++)
ss = newS.slice(h, -u)
if (isReverse(ss))
if (ss.length > len)
len = ss.length
str = ss
u--
return str
function isReverse(s)
let i = Math.floor(s.length / 2)
while (i >= 0)
if(s[i] != s[s.length - i-1])
return false
i--
return true
二。编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
/*编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。*/
function longestCommonPrefix(strs)
if (strs.length === 1)
return strs[0]
let minL = ''
for (let i = 0; i < strs.length; i++)
if (!minL)
minL = strs[i]
else
if (strs[i].length < minL.length)
minL = strs[i]
if(!minL)
return ''
let str = ''
let n
for (let i = 0; i < minL.length; i++)
for (let j = 0; j < strs.length; j++)
if(strs[j][i] == minL[i])
n = true
else
n = false
break
if (n)
str+=minL[i]
else
return str
return str
三。给定一个只包括 ‘(’,’)’,’’,’’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
/*给定一个只包括 '(',')','','','[',']' 的字符串 s ,判断字符串是否有效。*/
function isValid(s)
if (s.length % 2 !== 0)
return false
let stack = []
let left1 = ''
let right1 = ''
let left2 = '('
let right2 = ')'
let left3 = '['
let right3 = ']'
for (let i = 0; i < s.length; i++)
if (!stack.length)
stack.push(s[i])
else
if (stack[stack.length - 1] === left1 && s[i] === right1 || stack[stack.length - 1] === left2 && s[i] === right2 || stack[stack.length - 1] === left3 && s[i] === right3)
stack.pop()
else
stack.push(s[i])
if (stack.length)
return false
return true
以上是关于Leetcode 51420:最长回文子串-最长公共前缀-有效括号的主要内容,如果未能解决你的问题,请参考以下文章