mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-07-05 09:21:13 +08:00
Add pep8-naming to pre-commit hooks and fixes incorrect naming conventions (#7062)
* ci(pre-commit): Add pep8-naming to `pre-commit` hooks (#7038) * refactor: Fix naming conventions (#7038) * Update arithmetic_analysis/lu_decomposition.py Co-authored-by: Christian Clauss <cclauss@me.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refactor(lu_decomposition): Replace `NDArray` with `ArrayLike` (#7038) * chore: Fix naming conventions in doctests (#7038) * fix: Temporarily disable project euler problem 104 (#7069) * chore: Fix naming conventions in doctests (#7038) Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
@ -15,9 +15,9 @@ Enter an Infix Equation = a + b ^c
|
||||
"""
|
||||
|
||||
|
||||
def infix_2_postfix(Infix):
|
||||
Stack = []
|
||||
Postfix = []
|
||||
def infix_2_postfix(infix):
|
||||
stack = []
|
||||
post_fix = []
|
||||
priority = {
|
||||
"^": 3,
|
||||
"*": 2,
|
||||
@ -26,7 +26,7 @@ def infix_2_postfix(Infix):
|
||||
"+": 1,
|
||||
"-": 1,
|
||||
} # Priority of each operator
|
||||
print_width = len(Infix) if (len(Infix) > 7) else 7
|
||||
print_width = len(infix) if (len(infix) > 7) else 7
|
||||
|
||||
# Print table header for output
|
||||
print(
|
||||
@ -37,52 +37,52 @@ def infix_2_postfix(Infix):
|
||||
)
|
||||
print("-" * (print_width * 3 + 7))
|
||||
|
||||
for x in Infix:
|
||||
for x in infix:
|
||||
if x.isalpha() or x.isdigit():
|
||||
Postfix.append(x) # if x is Alphabet / Digit, add it to Postfix
|
||||
post_fix.append(x) # if x is Alphabet / Digit, add it to Postfix
|
||||
elif x == "(":
|
||||
Stack.append(x) # if x is "(" push to Stack
|
||||
stack.append(x) # if x is "(" push to Stack
|
||||
elif x == ")": # if x is ")" pop stack until "(" is encountered
|
||||
while Stack[-1] != "(":
|
||||
Postfix.append(Stack.pop()) # Pop stack & add the content to Postfix
|
||||
Stack.pop()
|
||||
while stack[-1] != "(":
|
||||
post_fix.append(stack.pop()) # Pop stack & add the content to Postfix
|
||||
stack.pop()
|
||||
else:
|
||||
if len(Stack) == 0:
|
||||
Stack.append(x) # If stack is empty, push x to stack
|
||||
if len(stack) == 0:
|
||||
stack.append(x) # If stack is empty, push x to stack
|
||||
else: # while priority of x is not > priority of element in the stack
|
||||
while len(Stack) > 0 and priority[x] <= priority[Stack[-1]]:
|
||||
Postfix.append(Stack.pop()) # pop stack & add to Postfix
|
||||
Stack.append(x) # push x to stack
|
||||
while len(stack) > 0 and priority[x] <= priority[stack[-1]]:
|
||||
post_fix.append(stack.pop()) # pop stack & add to Postfix
|
||||
stack.append(x) # push x to stack
|
||||
|
||||
print(
|
||||
x.center(8),
|
||||
("".join(Stack)).ljust(print_width),
|
||||
("".join(Postfix)).ljust(print_width),
|
||||
("".join(stack)).ljust(print_width),
|
||||
("".join(post_fix)).ljust(print_width),
|
||||
sep=" | ",
|
||||
) # Output in tabular format
|
||||
|
||||
while len(Stack) > 0: # while stack is not empty
|
||||
Postfix.append(Stack.pop()) # pop stack & add to Postfix
|
||||
while len(stack) > 0: # while stack is not empty
|
||||
post_fix.append(stack.pop()) # pop stack & add to Postfix
|
||||
print(
|
||||
" ".center(8),
|
||||
("".join(Stack)).ljust(print_width),
|
||||
("".join(Postfix)).ljust(print_width),
|
||||
("".join(stack)).ljust(print_width),
|
||||
("".join(post_fix)).ljust(print_width),
|
||||
sep=" | ",
|
||||
) # Output in tabular format
|
||||
|
||||
return "".join(Postfix) # return Postfix as str
|
||||
return "".join(post_fix) # return Postfix as str
|
||||
|
||||
|
||||
def infix_2_prefix(Infix):
|
||||
Infix = list(Infix[::-1]) # reverse the infix equation
|
||||
def infix_2_prefix(infix):
|
||||
infix = list(infix[::-1]) # reverse the infix equation
|
||||
|
||||
for i in range(len(Infix)):
|
||||
if Infix[i] == "(":
|
||||
Infix[i] = ")" # change "(" to ")"
|
||||
elif Infix[i] == ")":
|
||||
Infix[i] = "(" # change ")" to "("
|
||||
for i in range(len(infix)):
|
||||
if infix[i] == "(":
|
||||
infix[i] = ")" # change "(" to ")"
|
||||
elif infix[i] == ")":
|
||||
infix[i] = "(" # change ")" to "("
|
||||
|
||||
return (infix_2_postfix("".join(Infix)))[
|
||||
return (infix_2_postfix("".join(infix)))[
|
||||
::-1
|
||||
] # call infix_2_postfix on Infix, return reverse of Postfix
|
||||
|
||||
|
@ -20,49 +20,49 @@ Enter a Postfix Equation (space separated) = 5 6 9 * +
|
||||
import operator as op
|
||||
|
||||
|
||||
def Solve(Postfix):
|
||||
Stack = []
|
||||
Div = lambda x, y: int(x / y) # noqa: E731 integer division operation
|
||||
Opr = {
|
||||
def solve(post_fix):
|
||||
stack = []
|
||||
div = lambda x, y: int(x / y) # noqa: E731 integer division operation
|
||||
opr = {
|
||||
"^": op.pow,
|
||||
"*": op.mul,
|
||||
"/": Div,
|
||||
"/": div,
|
||||
"+": op.add,
|
||||
"-": op.sub,
|
||||
} # operators & their respective operation
|
||||
|
||||
# print table header
|
||||
print("Symbol".center(8), "Action".center(12), "Stack", sep=" | ")
|
||||
print("-" * (30 + len(Postfix)))
|
||||
print("-" * (30 + len(post_fix)))
|
||||
|
||||
for x in Postfix:
|
||||
for x in post_fix:
|
||||
if x.isdigit(): # if x in digit
|
||||
Stack.append(x) # append x to stack
|
||||
stack.append(x) # append x to stack
|
||||
# output in tabular format
|
||||
print(x.rjust(8), ("push(" + x + ")").ljust(12), ",".join(Stack), sep=" | ")
|
||||
print(x.rjust(8), ("push(" + x + ")").ljust(12), ",".join(stack), sep=" | ")
|
||||
else:
|
||||
B = Stack.pop() # pop stack
|
||||
b = stack.pop() # pop stack
|
||||
# output in tabular format
|
||||
print("".rjust(8), ("pop(" + B + ")").ljust(12), ",".join(Stack), sep=" | ")
|
||||
print("".rjust(8), ("pop(" + b + ")").ljust(12), ",".join(stack), sep=" | ")
|
||||
|
||||
A = Stack.pop() # pop stack
|
||||
a = stack.pop() # pop stack
|
||||
# output in tabular format
|
||||
print("".rjust(8), ("pop(" + A + ")").ljust(12), ",".join(Stack), sep=" | ")
|
||||
print("".rjust(8), ("pop(" + a + ")").ljust(12), ",".join(stack), sep=" | ")
|
||||
|
||||
Stack.append(
|
||||
str(Opr[x](int(A), int(B)))
|
||||
stack.append(
|
||||
str(opr[x](int(a), int(b)))
|
||||
) # evaluate the 2 values popped from stack & push result to stack
|
||||
# output in tabular format
|
||||
print(
|
||||
x.rjust(8),
|
||||
("push(" + A + x + B + ")").ljust(12),
|
||||
",".join(Stack),
|
||||
("push(" + a + x + b + ")").ljust(12),
|
||||
",".join(stack),
|
||||
sep=" | ",
|
||||
)
|
||||
|
||||
return int(Stack[0])
|
||||
return int(stack[0])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
Postfix = input("\n\nEnter a Postfix Equation (space separated) = ").split(" ")
|
||||
print("\n\tResult = ", Solve(Postfix))
|
||||
print("\n\tResult = ", solve(Postfix))
|
||||
|
@ -8,7 +8,7 @@ on the current day is less than or equal to its price on the given day.
|
||||
"""
|
||||
|
||||
|
||||
def calculateSpan(price, S):
|
||||
def calculation_span(price, s):
|
||||
|
||||
n = len(price)
|
||||
# Create a stack and push index of fist element to it
|
||||
@ -16,7 +16,7 @@ def calculateSpan(price, S):
|
||||
st.append(0)
|
||||
|
||||
# Span value of first element is always 1
|
||||
S[0] = 1
|
||||
s[0] = 1
|
||||
|
||||
# Calculate span values for rest of the elements
|
||||
for i in range(1, n):
|
||||
@ -30,14 +30,14 @@ def calculateSpan(price, S):
|
||||
# than all elements on left of it, i.e. price[0],
|
||||
# price[1], ..price[i-1]. Else the price[i] is
|
||||
# greater than elements after top of stack
|
||||
S[i] = i + 1 if len(st) <= 0 else (i - st[0])
|
||||
s[i] = i + 1 if len(st) <= 0 else (i - st[0])
|
||||
|
||||
# Push this element to stack
|
||||
st.append(i)
|
||||
|
||||
|
||||
# A utility function to print elements of array
|
||||
def printArray(arr, n):
|
||||
def print_array(arr, n):
|
||||
for i in range(0, n):
|
||||
print(arr[i], end=" ")
|
||||
|
||||
@ -47,7 +47,7 @@ price = [10, 4, 5, 90, 120, 80]
|
||||
S = [0 for i in range(len(price) + 1)]
|
||||
|
||||
# Fill the span values in array S[]
|
||||
calculateSpan(price, S)
|
||||
calculation_span(price, S)
|
||||
|
||||
# Print the calculated span values
|
||||
printArray(S, len(price))
|
||||
print_array(S, len(price))
|
||||
|
Reference in New Issue
Block a user