合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
说明:
初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
示例:
输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3
输出:
[1,2,2,3,5,6]
class Solution:
def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
"""
Do not return anything, modify nums1 in-place instead.
"""
ret=0
for ind in range(m,len(nums1)):
nums1[ind]=999
for num2 in nums2:
ret=num2
i=0
while(i<len(nums1)):
if ret<=nums1[i] :
nums1[i],ret=ret,nums1[i]
i+=1
continue
if ret==999:
break
i+=1
125.验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: “A man, a plan, a canal: Panama”
输出: true
class Solution:
def isPalindrome(self, s: str) -> bool:
s=s.lower()
new=str()
for char in s:
if char.isalnum():
new+=char
new=''.join(new)
new_T=new[::-1]
if new==new_T:
return True
return False
分割回文串
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。
返回 s 所有可能的分割方案。
示例:
输入: “aab”
输出:
[
[“aa”,“b”],
[“a”,“a”,“b”]
]
class Solution(object):
def dfs(self, s, path, res):
if not s: #如果分到最后s为空,则,一定是回文串
res.append(path)
return
for i in range(len(s)):
tmp = s[:i + 1] #字符串,list都可以取到len之后
if tmp==tmp[::-1]:
self.dfs(s[i + 1:], path + [tmp], res)
def partition(self, s):
"""
:type s: str
:rtype: List[List[str]]
"""
res = []
self.dfs(s, [], res)
return res