Source code for pyDS.usecase.stack
from ..stack import Stack
[docs]def bracketBalanced(expression):
"""Check if an expression is balanced.
An expression is balanced if all the opening brackets(i.e. '(, {, [') have
a corresponding closing bracket(i.e. '), }, ]').
Args:
expression (str) : The expression to be checked.
Returns:
bool: True if expression is balanced. False if not balanced.
"""
bracket_dict = {'(': ')', '{': '}', '[': ']'}
stack = Stack()
for i in range(len(expression)):
if expression[i] in bracket_dict.keys():
stack.push(expression[i])
elif expression[i] in bracket_dict.values():
if stack.isEmpty() or expression[i] != bracket_dict[stack.peek()]:
return False
else:
stack.pop()
if stack.isEmpty():
return True
else:
return False
[docs]def decimalBaseConvert(number, base=2):
"""Convert decimal numbers.
Convert the base of a decimal number to another base.
Args:
number (int): The number to be converted.
base (int, optional): The base to convert the number to.
Defaults to 2. Minimum value 2. Maximum value 16.
Returns:
str: The string representation of the converted number.
"""
if base < 2 or base > 16:
raise ValueError("Invalid Base Value: Expected value between 2 and 16")
if number == 0:
return '0'
stack = Stack()
digits = "0123456879ABCDEF"
while number > 0:
stack.push(number % base)
number = number // base
converted_number = ""
while not stack.isEmpty():
converted_number += digits[stack.pop()]
return converted_number