leetcode 其他题
Posted yutingting
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 其他题相关的知识,希望对你有一定的参考价值。
leetcode 3.无重复字符的最长子串
class Solution(object):
def lengthOfLongestSubstring(self, s):
if not s: return 0
s_dict, start, cur_len, max_len = {}, 0, 0, 0
for i in range(len(s)):
if s[i] in s_dict and start<=s_dict[s[i]]:
start = s_dict[s[i]] + 1
s_dict[s[i]] = i
cur_len = i-start+1
max_len = max(max_len, cur_len)
return max_len
leetcode 5.最长回文子串
class Solution(object):
def longestPalindrome(self, s):
def helper(i, j):
while i>=0 and j<n and s[i]==s[j]:
i-=1; j+=1
if len(self.res)<j-i-1:
self.res = s[i+1:j]
if not s: return s
n = len(s)
self.res = ‘‘
for i in range(n):
helper(i, i)
helper(i, i+1)
return self.res
# 求解
s = Solution()
s.longestPalindrome(‘babad‘)
# return
‘bab‘
leetcode 6.Z字形变换
class Solution(object):
def convert(self, s, numRows):
if numRows<2: return s
res = [‘‘ for _ in range(numRows)]
start = 0
flag = -1
for c in s:
res[start] += c
if start==0 or start==numRows-1: flag = -flag
start += flag
return ‘‘.join(res)
# 求解
s = Solution()
s.convert(‘LEETCODEISHIRING‘, 3)
leetcode 7.整数反转
class Solution(object):
def reverse(self, x):
res = 0
flag = 1 if x>0 else -1
x = str(abs(x))
for i in range(len(x)):
res += int(x[i])*pow(10,i)
return res*flag if -2**31<=res<=2**31-1 else 0
leetcode 8.字符串转换整数 (atoi)
class Solution(object):
def myAtoi(self, str):
import re
s = re.findall(r‘^[+-]?d+‘, str.strip())
if not s:
return 0
elif int(s[0])<=-2**31:
return -2**31
elif int(s[0])>=2**31-1:
return 2**31-1
else:
return int(s[0])
leetcode 14.最长公共前缀
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if not strs: return ‘‘
s1 = min(strs)
s2 = max(strs)
for index, value in enumerate(s1):
if value!=s2[index]:
return s1[:index]
return s1
以上是关于leetcode 其他题的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段