东大15春学期《数据结构与算法》在线作业3答案

  • 格式:docx
  • 大小:36.71 KB
  • 文档页数:4

东大15春学期《数据结构与算法》在线作业3答案

本文档是东大15学期《数据结构与算法》在线作业3的答案。在这份答案中,我们将讨论作业中的题目并给出相应的解答。

题目1

题目描述:

题目1要求我们实现一个栈的数据结构,并完成入栈(push)和出栈(pop)的操作。

解答:

我们可以使用数组来实现栈的数据结构。具体实现如下:

class Stack:

def __init__(self):

self.stack = []

def push(self, item):

self.stack.append(item)

def pop(self):

if not self.is_empty():

return self.stack.pop()

else:

return None

def is_empty(self):

return len(self.stack) == 0

题目2

题目描述:

题目2要求我们判断一个字符串是否是有效的括号序列。即括号的开闭必须是匹配的。

解答:

我们可以使用栈来判断括号序列的有效性。遍历字符串,如果遇到左括号,则将其入栈;如果遇到右括号,则判断栈顶元素是否与之匹配,若匹配则继续遍历,若不匹配则返回False。遍历完字符串后,若栈为空,则返回True,否则返回False。

具体实现如下:

def is_valid_brackets(s):

stack = []

brackets = {'(': ')', '[': ']', '{': '}'}

for char in s:

if char in brackets.keys():

stack.append(char)

else:

if not stack or brackets[stack.pop()] != char:

return False

return len(stack) == 0

以上就是《数据结构与算法》在线作业3的答案,希望能对你有所帮助。