2026年IT公司面试宝典软件开发工程师面试题及答案.docxVIP

  • 3
  • 0
  • 约7.84千字
  • 约 22页
  • 2026-01-11 发布于福建
  • 举报

2026年IT公司面试宝典软件开发工程师面试题及答案.docx

第PAGE页共NUMPAGES页

2026年IT公司面试宝典:软件开发工程师面试题及答案

一、编程语言与数据结构(共5题,每题10分,总分50分)

1.题目:

请用Python实现一个函数,输入一个非负整数`n`,返回`n`的汉诺塔移动步骤(使用列表存储每一步的移动顺序,例如:`[(A,C),(A,B),(C,B)]`)。

答案:

python

defhanoi(n,source,target,auxiliary):

ifn==1:

return[(source,target)]

else:

moves=[]

moves.extend(hanoi(n-1,source,auxiliary,target))

moves.append((source,target))

moves.extend(hanoi(n-1,auxiliary,target,source))

returnmoves

示例调用

print(hanoi(3,A,C,B))

输出:[(A,C),(A,B),(C,B),(A,C),(B,A),(C,B),(A,C)]

解析:

汉诺塔问题采用递归解法,将`n-1`个盘子从源柱子移动到辅助柱子,再移动最大的盘子到目标柱子,最后将`n-1`个盘子从辅助柱子移动到目标柱子。每一步的移

文档评论(0)

1亿VIP精品文档

相关文档