Leetcode做题记录_2

唉,学

最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

1
2
输入:strs = ["flower","flow","flight"]
输出:"fl"

示例 2:

1
2
3
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution:
def getshuzu(self):
user_input = input("输入内容,以逗号分隔:")
input_list = user_input.split(',')
print(f"输入的数组为:{input_list}")
return input_list

def findqianzhui(self,input_list):

min_len = min(len(s) for s in input_list)
for i in range(min_len):
current_char = input_list[0][i]
if all(s[i] == current_char for s in input_list):
continue
else:
print(input_list[0][:i])
return ""
solution = Solution()
shuzu = solution.getshuzu()
qianzhui = solution.findqianzhui(shuzu)

有效的括号

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:

1
2
3
输入:s = "()"
输出:true

这题没做出来。。想麻烦了,看了别人的解法:

1
2
3
4
5
6
7
8
9
10
class Solution(object):
def isValid(self, s):
while True:
temp = s.replace('()', '').replace('[]', '').replace('{}', '')
if temp == '':
return True
elif temp == s:
return False
else:
s = temp

思路就是一层一层把括号消掉。我当时想的是遍历s,然后如果(的下一位是){的下一位是}等等就直接替换成空。。

合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

1
2
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:

1
2
输入:l1 = [], l2 = []
输出:[]
1
2
3
4
5
6
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
if l1 and l2:
if l1.val > l2.val: l1, l2 = l2, l1
l1.next = self.mergeTwoLists(l1.next, l2)
return l1 or l2

Leetcode做题记录_2
http://example.com/2024/04/10/2024-4-10-Leetcode做题记录_2/
作者
notbad3
发布于
2024年4月10日
许可协议