诺姆四达测试题目含答案
【正文】
一、诺姆四达测试题目
1. 题目:矩阵乘法
二叉树的遍历python描述:给定两个矩阵A和B,它们的维度分别为m×n和n×p,计算它们的乘积C。请编写一个函数来实现矩阵乘法,并返回结果矩阵C。
```python
def matrix_multiply(A, B):
m = len(A) # 矩阵A的行数
n = len(A[0]) # 矩阵A的列数,也是矩阵B的行数
p = len(B[0]) # 矩阵B的列数
C = [[0] * p for _ in range(m)] # 结果矩阵C初始化为全0矩阵
for i in range(m):
for j in range(p):
for k in range(n):
C[i][j] += A[i][k] * B[k][j] # 矩阵乘法公式
return C
```
2. 题目:字符串去重
描述:给定一个字符串s,编写一个函数去除其中重复的字符,返回去重后的字符串。保持字符顺序不变。
```python
def remove_duplicates(s):
char_set = set() # 使用set来存储已经出现过的字符
result = '' # 结果字符串,初始化为空
for char in s:
if char not in char_set: # 如果字符不在set中,则添加到结果字符串中,并将字符加入set中
result += char
char_set.add(char)
return result
```
3. 题目:二叉树遍历
描述:给定一个二叉树的根节点root,编写三个函数来实现它的前序遍历、中序遍历和后序遍历,并返回遍历结果。
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def preorder_traversal(root):
result = [] # 存储遍历结果的列表
def helper(node):
if not node:
return
result.append(node.val) # 先访问根节点
helper(node.left) # 递归遍历左子树
helper(node.right) # 递归遍历右子树
helper(root)
return result
def inorder_traversal(root):
result = [] # 存储遍历结果的列表
def helper(node):
if not node:
return
helper(node.left) # 递归遍历左子树
result.append(node.val) # 访问根节点
helper(node.right) # 递归遍历右子树
helper(root)
return result
def postorder_traversal(root):
result = [] # 存储遍历结果的列表
def helper(node):
if not node:
return
helper(node.left) # 递归遍历左子树
helper(node.right) # 递归遍历右子树
result.append(node.val) # 访问根节点
helper(root)
return result
```
以上是诺姆四达的测试题目,包含了矩阵乘法、字符串去重和二叉树遍历三个问题的解答。希望对您有帮助!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论