diff --git a/climbing-stairs/EstherKim97.py b/climbing-stairs/EstherKim97.py new file mode 100644 index 000000000..d34ce7587 --- /dev/null +++ b/climbing-stairs/EstherKim97.py @@ -0,0 +1,33 @@ +class Solution(object): + def climbStairs(self, n): + + import math + + # First attempt to this question. + # Get dividend and remainder of 2 steps & get all combinations & add one additional method for all 1 step combination + # But how to get all combinations? => permutation + # def climbStairs(self, n): + # # 2 steps + # two_steps = n // 2 + # two_steps_remainder = n % 2 + # total_steps = two_steps + two_steps_remainder + # total_permu = math.factorial(total_steps) // (math.factorial(two_steps) * math.factorial(two_steps_remainder)) + # total_permu += 1 + # return total_permu + + # Second method - n = 2x+y + if n % 2 == 0: + max = n //2 + else: + max = (n-1) // 2 + + total_methods = 0 + + for i in range(0, max+1): + y = n - (2 * i) + total_steps = i + y + + total_permu = math.factorial(total_steps) // (math.factorial(i) * math.factorial(y)) + total_methods += total_permu + + return total_methods diff --git a/valid-anagram/EstherKim97.py b/valid-anagram/EstherKim97.py new file mode 100644 index 000000000..aea026b70 --- /dev/null +++ b/valid-anagram/EstherKim97.py @@ -0,0 +1,20 @@ +class Solution(object): + def isAnagram(self, s, t): + character1 = [] + character2 = [] + + # put characters in character1 and character2 + for i in s: + character1.append(i) + for i in t: + character2.append(i) + + # sort out the characters in alphabetical order + character1.sort() + character2.sort() + + # compare each characters to see if they match (= anagram) + if character1 == character2: + return True + else: + return False