题1
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807.
def sums(l1, l2):
if l1 != [0] and l2 != [0]:
l1_str = [str(i) for i in l1]
l2_str = [str(i) for i in l2]
str1 = ''.join(l1_str)
str2 = ''.join(l2_str)
sum = int(str1) + int(str2)
return [int(i) for i in str(sum)][::-1]
else:
return [0]
# a = [0]
# a = [2, 4, 3]
a = [9, 9, 9, 9, 9, 9, 9]
# b = [0]
# b = [5, 6, 4]
b = [9, 9, 9, 9]
print(sums(a, b))
"""
执行结果:
[8, 9, 9, 9, 0, 0, 0, 1]
"""
题2
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串
def le(s):
dic = {}
i, nums = -1, 0
for j in range(len(s)):
if s[j] in dic:
i = max(dic[s[j]], i)
ans = max(nums, j-i)
dic[s[j]] = j
return nums
s = 'pwwkew'
print(le(s))
题3
寻找两个正序数组的中位数
def func(nums1, nums2):
nums1.extend(nums2)
nums1.sort()
num = len(nums1)
if num % 2 == 0:
i = int((num / 2) - 1)
k = i + 1
middle_num = (nums1[i] + nums1[k]) / 2
else:
j = int((num + 1) / 2)
middle_num = nums1[j-1]
return middle_num
标签:子串,练习,算法,num,l2,str,l1,nums1 From: https://www.cnblogs.com/zxy01/p/17211986.html