进制转换函数的实现,栈操作函数
时间: 2023-12-22 13:06:33 浏览: 53
好的,我可以为您提供一些关于进制转换函数和栈操作函数的实现的建议。
1. 进制转换函数实现:
进制转换函数可以将一个给定的十进制数转换为其他进制的数。以下是一个示例实现:
```python
def dec_to_base(n, base):
digits = "0123456789ABCDEF"
result = ''
while n > 0:
digit = n % base
result = digits[digit] + result
n = n // base
return result
```
这个函数接受两个参数:要转换的十进制数和目标进制。它使用了一个 while 循环,通过不断地取模和整除来计算出每个位的数字,并将其添加到结果字符串中。最后返回结果字符串。
例如,将十进制数 255 转换为十六进制数可以这样调用该函数:
```python
>>> dec_to_base(255, 16)
'FF'
```
2. 栈操作函数实现:
栈是一种数据结构,可以通过 push() 和 pop() 操作在栈顶插入和删除元素。以下是一个示例实现:
```python
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
if self.is_empty():
raise ValueError('Stack is empty')
return self.items.pop()
def peek(self):
if self.is_empty():
raise ValueError('Stack is empty')
return self.items[-1]
```
这个类实现了一个基本的栈数据结构,包括 push()、pop() 和 peek() 操作。它使用一个列表来存储栈中的元素,并提供了 is_empty() 方法来检查栈是否为空。
例如,可以这样使用栈来检查一个字符串中的括号是否匹配:
```python
def check_parentheses(s):
stack = Stack()
for c in s:
if c == '(':
stack.push(c)
elif c == ')':
if stack.is_empty():
return False
stack.pop()
return stack.is_empty()
```
这个函数接受一个字符串作为参数,并使用栈来检查其中的括号是否匹配。它使用了一个 for 循环来遍历字符串中的每个字符,并在遇到左括号时将其压入栈中,在遇到右括号时将其弹出。如果在弹出时发现栈为空,则说明括号不匹配。最后,函数返回栈是否为空来表示括号是否匹配。
阅读全文