诺姆四达测试题目含答案
【正文】
一、诺姆四达测试题目
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小时内删除。