2026年Python算法面试题及编程实现解析.docxVIP

  • 0
  • 0
  • 约6.96千字
  • 约 19页
  • 2026-01-13 发布于福建
  • 举报

2026年Python算法面试题及编程实现解析.docx

第PAGE页共NUMPAGES页

2026年Python算法面试题及编程实现解析

一、基础编程题(共3题,每题10分)

1.题目:

编写一个Python函数,接收一个正整数`n`,返回一个列表,其中包含从`1`到`n`的所有奇数。如果输入不是正整数,函数应返回`None`。

答案与解析:

python

defodd_numbers(n):

ifnotisinstance(n,int)orn=0:

returnNone

return[iforiinrange(1,n+1)ifi%2!=0]

解析:

-首先检查输入是否为正整数,使用`isinstance`判断类型,并确保`n0`。

-使用列表推导式生成从`1`到`n`的奇数,条件为`i%2!=0`。

-如果输入无效,返回`None`。

2.题目:

实现一个函数`merge_lists`,接收两个有序列表`list1`和`list2`,返回一个合并后的有序列表。要求不使用内置的`sorted()`或`+`操作符。

答案与解析:

python

defmerge_lists(list1,list2):

result=[]

i,j=0,0

whileilen(list1)andjlen(list2):

iflist1[i]list2[j]:

result.append(list1[i])

i+=1

else:

result.append(list2[j])

j+=1

result.extend(list1[i:])

result.extend(list2[j:])

returnresult

解析:

-使用双指针法,分别遍历`list1`和`list2`。

-比较当前指针指向的元素,将较小的元素添加到结果列表中,并移动对应指针。

-遍历结束后,将剩余元素添加到结果列表中。

-时间复杂度为`O(m+n)`,空间复杂度为`O(m+n)`。

3.题目:

编写一个函数`reverse_words`,接收一个字符串`s`,返回其中所有单词的逆序排列(单词内部字符顺序不变,单词间空格分隔)。例如,输入`helloworld`,返回`ollehdlrow`。

答案与解析:

python

defreverse_words(s):

words=s.split()

return.join(word[::-1]forwordinwords)

解析:

-使用`split()`按空格分割字符串,得到单词列表。

-对每个单词进行逆序,使用切片`[::-1]`。

-用`join()`将逆序后的单词重新拼接为字符串。

二、数据结构题(共4题,每题12分)

1.题目:

实现一个栈(Stack)类,支持`push`、`pop`和`peek`操作。使用列表作为底层存储,但不允许使用Python的`collections.deque`。

答案与解析:

python

classStack:

def__init__(self):

self.items=[]

defpush(self,item):

self.items.append(item)

defpop(self):

ifnotself.items:

returnNone

returnself.items.pop()

defpeek(self):

ifnotself.items:

returnNone

returnself.items[-1]

解析:

-栈是后进先出(LIFO)数据结构,使用列表的`append`和`pop`操作实现。

-`push`将元素添加到末尾,`pop`从末尾移除并返回,`peek`返回末尾元素但不移除。

2.题目:

编写一个函数`is_balanced`,判断一个字符串中的括号(`(`、`)`、`[`、`]`、`{`、`}`)是否匹配且正确闭合。

答案与解析:

python

defis_balanced(s):

stack=[]

mapping={):(,]:[,}:{}

forcharins:

ifcharinmapping.values():

stack.append(char)

elifcharinmapping:

ifnotstackorstack.pop()!=mapping[char]:

returnFalse

returnnotstack

解析:

-使用栈存储左括号,遇到右括号时检查栈顶是否匹配。

-如果栈为空或栈顶不匹配,返回`False`。

-最后检查栈是否为空,若为空则匹配。

文档评论(0)

1亿VIP精品文档

相关文档