深圳市网站维护,做的网站不能放视频软件,手机网站qq代码,简述网站建设的方案一、最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀#xff0c;返回空字符串 。 示例 1#xff1a;
输入#xff1a;strs [flower,flow,flight]
输出#xff1a;fl示例…一、最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀返回空字符串 。 示例 1
输入strs [flower,flow,flight]
输出fl示例 2
输入strs [dog,racecar,car]
输出
解释输入不存在公共前缀。
class Solution(object):def longestCommonPrefix(self, strs)::type strs: List[str]:rtype: strif not strs: # 如果数组为空返回空字符串return # 找到最短字符串的长度min_len min(len(s) for s in strs)# 逐个字符比较for i in range(min_len):current_char strs[0][i] # 取第一个字符串的第 i 个字符for s in strs:if s[i] ! current_char: # 如果字符不匹配return strs[0][:i] # 返回当前匹配的前缀return strs[0][:min_len] # 返回最短字符串
二、三数之和
给你一个整数数组 nums 判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k 同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。
注意答案中不可以包含重复的三元组。 示例 1
输入nums [-1,0,1,2,-1,-4]
输出[[-1,-1,2],[-1,0,1]]
解释
nums[0] nums[1] nums[2] (-1) 0 1 0 。
nums[1] nums[2] nums[4] 0 1 (-1) 0 。
nums[0] nums[3] nums[4] (-1) 2 (-1) 0 。
不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。
注意输出的顺序和三元组的顺序并不重要。示例 2
输入nums [0,1,1]
输出[]
解释唯一可能的三元组和不为 0 。示例 3
输入nums [0,0,0]
输出[[0,0,0]]
解释唯一可能的三元组和为 0 。
class Solution(object):def threeSum(self, nums)::type nums: List[int]:rtype: List[List[int]]if not nums or len(nums) 3: # 检查输入是否合法return []nums.sort() # 排序result []for i in range(len(nums) - 2): # 固定第一个数if i 0 and nums[i] nums[i - 1]: # 跳过重复continueleft, right i 1, len(nums) - 1 # 双指针while left right:total nums[i] nums[left] nums[right]if total 0:left 1elif total 0:right - 1else:result.append([nums[i], nums[left], nums[right]])while left right and nums[left] nums[left 1]: # 跳过重复left 1while left right and nums[right] nums[right - 1]: # 跳过重复right - 1left 1right - 1return result