湛江市住房和城乡建设局网站,品牌化战略的重要性,子域名ip查询大全,网站开发流程php这里写目录标题 一、判断是否为回文数二、编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀#xff0c;返回空字符串#xff08;力口14#xff09;。三、在排序数组中查找元素的第一个和最后一个位置#xff08;力扣34题#xff09;四、删除排序数组中的… 这里写目录标题 一、判断是否为回文数二、编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀返回空字符串力口14。三、在排序数组中查找元素的第一个和最后一个位置力扣34题四、删除排序数组中的重复项26五、计算最大的面积 一、判断是否为回文数
给定一个只包括 ‘(’‘)’‘{’‘}’‘[’]的字符串 s 判断字符串是否有效。
有效字符串需满足
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。
示例 1 输入s “()” 输出true
示例2 输入s “()[]{}” 输出true
示例3 输入s “(]” 输出false
来源力扣LeetCode 链接https://leetcode.cn/problems/valid-parentheses 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
import itertools
from collections import defaultdictdic {(: ), {: }, [: ], ?: ?}def test1(num):topic [?]for i in num:if i in dic:topic.append(i)else:if dic[topic.pop()] ! i:return Falsereturn len(topic) 1num (()))
res test1(num)
print(res)二、编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀返回空字符串力口14。
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀返回空字符串 “”。
示例 1 输入strs [“flower”,“flow”,“flight”] 输出“fl”
示例 2 输入strs [“dog”,“racecar”,“car”] 输出“” 解释输入不存在公共前缀。
def test2(strs):l s list(zip(*strs))for item in s:if len(set(item)) 1:l item[0]else:breakreturn lstrs [flower, flow, flight]
print(test2(strs))特别注意
strs [flower, flow, flight]
print(list(zip(*strs))) # todo [(f, f, f), (l, l, l), (o, o, i), (w, w, g)]三、在排序数组中查找元素的第一个和最后一个位置力扣34题
给你一个按照非递减顺序排列的整数数组 nums和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target返回[-1, -1]。 你必须设计并实现时间复杂度为O(log n)的算法解决此问题。
示例 1 输入nums [5,7,7,8,8,10], target 8 输出[3,4]
示例2 输入nums [5,7,7,8,8,10], target 6 输出[-1,-1]
示例 3 输入nums [], target 0 输出[-1,-1]
def test3(nums, target):if target in nums:return [nums.index(target), nums.index(target) nums.count(target) - 1]else:return [-1, -1]nums []
target 0
print(test3(nums, target))四、删除排序数组中的重复项26
给你一个 非严格递增排列 的数组 nums 请你 原地 删除重复出现的元素使每个元素 只出现一次 返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
给定 nums [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。 你不需要考虑数组中超出新长度后面的元素。
示例 1 输入nums [1,1,2] 输出2, nums [1,2,_] 解释函数应该返回新的长度 2 并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。
示例 2 输入nums [0,0,1,1,1,2,2,3,3,4] 输出5, nums [0,1,2,3,4] 解释函数应该返回新的长度 5 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。
def test4(nums):slow 0fast 0while fast len(nums):if nums[slow] nums[fast]:fast 1else:slow 1nums[slow] nums[fast]return slow 1nums [0, 0, 1, 1, 1, 2, 2, 3, 3, 4]
print(test4(nums))
五、计算最大的面积
给定一个长度为 n 的整数数组height。有n条垂线第 i 条线的两个端点是(i, 0)和(i, height[i])。 找出其中的两条线使得它们与x轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。
输入[1,8,6,2,5,4,8,3,7] 输出49 解释图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下容器能够容纳水表示为蓝色部分的最大值为49。 示例 2
输入height [1,1] 输出1
def test5(nums):res 0left 0right len(nums) - 1while left right:pre (right - left) * min(nums[left], nums[right])res max(pre, res)if nums[left] nums[right]:left 1else:right - 1return resnums [1, 1]
print(test5(nums))