diff --git a/basics/03_control_flow/06_greet_names.py b/basics/03_control_flow/06_greet_names.py index 10b421e..1f6d686 100644 --- a/basics/03_control_flow/06_greet_names.py +++ b/basics/03_control_flow/06_greet_names.py @@ -1,9 +1,9 @@ """Write a program to greet all the person names stored in a list 'l' and which starts with S. -l = ["Harry", "Soham", "Sachin", "Rahul","Harish","Hetbe","Rajesh","Harish Meheta"]""" +l = ["Harry", "Soham", "Sachin", "Rahul","Harish","Hetbe","rajesh","Harish Meheta"]""" -names_list = ["Harry", "Soham", "Sachin", "Rahul","Harish","Hetbe","Rajesh","Harish Meheta"] +names_list = ["Harry", "Soham", "Sachin", "Rahul","Harish","Hetbe","rajesh","Harish Meheta"] for name in names_list: if(name.startswith("H")): print(f"Greet Sended to {name}") diff --git a/basics/05_data_structures/04_list_remove.py b/basics/05_data_structures/04_list_remove.py index 56c0469..a7b9797 100644 --- a/basics/05_data_structures/04_list_remove.py +++ b/basics/05_data_structures/04_list_remove.py @@ -11,5 +11,5 @@ def remove_and_strip(string_list, word): return cleaned_list -string_list = ["Ram","Shyam","Gyan",'Pyan',"Myan","an"] +string_list = ["ram","Shyam","Gyan",'Pyan',"Myan","an"] print(remove_and_strip(string_list, "an")) \ No newline at end of file diff --git a/basics/05_data_structures/11_tuple_methods.py b/basics/05_data_structures/11_tuple_methods.py index 157df5f..d538224 100644 --- a/basics/05_data_structures/11_tuple_methods.py +++ b/basics/05_data_structures/11_tuple_methods.py @@ -5,9 +5,9 @@ print(empty_tuple) #Prints the Blank Tuple -tuple1 = ("Hello","12345",False,"Ram","Ram") #tuple1 +tuple1 = ("Hello","12345",False,"ram","ram") #tuple1 tuple2 = (1222.22,False,24224.4224,"String") #tuple2 print(tuple1.count("Hello")) #--> Return number of occurrences of value. -print(tuple1.index("Ram")) #-->Return first index of value. +print(tuple1.index("ram")) #-->Return first index of value. print(len(tuple1)) #-->Return the number of items in a container. print(tuple1 + tuple2) #-->Concatenation of two tuples \ No newline at end of file diff --git a/basics/05_data_structures/15_set_methods.py b/basics/05_data_structures/15_set_methods.py index bb4c3fb..d68b8ad 100644 --- a/basics/05_data_structures/15_set_methods.py +++ b/basics/05_data_structures/15_set_methods.py @@ -1,12 +1,12 @@ # Set Methods Example -set1 = {1, 2, 3, 4, 5, False, True, "Aman", 23.23, "Rajesh", "Patel", "Sharma"} -set2 = {1, 2, 3, 4, 5, "Rajesh", "Patel", "ranjit"} +set1 = {1, 2, 3, 4, 5, False, True, "Aman", 23.23, "rajesh", "Patel", "Sharma"} +set2 = {1, 2, 3, 4, 5, "rajesh", "Patel", "ranjit"} set3 = {462, 3297} set4 = {"freefire", "enormous"} # Adding and removing elements -set1.add("Ram chandra ") # Add single element +set1.add("ram chandra ") # Add single element set1.clear() # Remove all elements print(set1.copy()) # Create a copy diff --git a/basics/05_data_structures/16_dict_basics.py b/basics/05_data_structures/16_dict_basics.py index afdee7c..8ec9f58 100644 --- a/basics/05_data_structures/16_dict_basics.py +++ b/basics/05_data_structures/16_dict_basics.py @@ -1,12 +1,12 @@ # Dictionary Methods Example dictionary_data = { - "Ram": 100, + "ram": 100, "Kiran": 90, "Sneha": 99.999, "String": 33.33, "l1": [12, 22], - "t1": ("Ram", "Sita") + "t1": ("ram", "Sita") } print(dictionary_data.items()) # View all key-value pairs @@ -15,9 +15,9 @@ print(dictionary_data.values()) # Get all values print(dictionary_data.get("Rama")) # Safe access (returns None if key missing) -dictionary_data.update({"Ram": 33.333}) # Update existing key +dictionary_data.update({"ram": 33.333}) # Update existing key print(dictionary_data.copy()) # Create a shallow copy -print(dictionary_data.pop("Ram")) # Remove key and return value +print(dictionary_data.pop("ram")) # Remove key and return value # Create new dict from keys print(dictionary_data.fromkeys({"Rakesh", "Prasant"})) diff --git a/basics/05_data_structures/17_dict_friends.py b/basics/05_data_structures/17_dict_friends.py index f9e1d2c..f28afe5 100644 --- a/basics/05_data_structures/17_dict_friends.py +++ b/basics/05_data_structures/17_dict_friends.py @@ -35,8 +35,8 @@ shyam_language = input("Enter your Favourite Programming Language : ") gita_language = input("Enter your Favourite Programming Language : ") ritu_language = input("Enter your Favourite Programming Language : ") -friends_languages = {"Ram":None,"Shyam":None,"Gita":None,"Ritu":None} -friends_languages.update({'Ram':ram_language}) +friends_languages = {"ram":None,"Shyam":None,"Gita":None,"Ritu":None} +friends_languages.update({'ram':ram_language}) friends_languages.update({'Shyam':shyam_language}) friends_languages.update({'Gita':gita_language}) friends_languages.update({'Ritu':ritu_language}) diff --git a/basics/05_data_structures/19_enumerate.py b/basics/05_data_structures/19_enumerate.py index 995c267..193a865 100644 --- a/basics/05_data_structures/19_enumerate.py +++ b/basics/05_data_structures/19_enumerate.py @@ -1,5 +1,5 @@ #Before Using emumerate -items_list = ["Hello",23,False,True,45,"Ram"] +items_list = ["Hello",23,False,True,45,"ram"] index = 0 for item in items_list: print(f"The item number at index {index} is {item}") diff --git a/basics/06_strings/02_string_methods.py b/basics/06_strings/02_string_methods.py index 13064de..304ca77 100644 --- a/basics/06_strings/02_string_methods.py +++ b/basics/06_strings/02_string_methods.py @@ -4,7 +4,7 @@ print(name.capitalize()) #Make the first letter of the word uppercase print(name.count("good")) #Counts the given string print(name.endswith("Boy")) #check that the given String ends with Boy or not -print(name.startswith("Ram")) #check that the given String Starts with Ram or not +print(name.startswith("ram")) #check that the given String Starts with ram or not print(name.find("good")) #return the index of the first occurence of the given Str print(name.index("good")) #return the index of the first occurence of the given Str print(name.isalnum()) #check the given string is alpha-numeric or not diff --git a/basics/06_strings/03_string_format.py b/basics/06_strings/03_string_format.py index 17ba122..4bb4427 100644 --- a/basics/06_strings/03_string_format.py +++ b/basics/06_strings/03_string_format.py @@ -3,5 +3,5 @@ template.format(p1,p2...) ''' -print("{} is a Good boy and {} is a Bad boy".format("Raghav","Rajesh")) +print("{} is a Good boy and {} is a Bad boy".format("Raghav","rajesh")) print("{} is my friend and {} loves me alot".format("X","Y")) \ No newline at end of file diff --git a/basics/08_oop/02_class_calculator.py b/basics/08_oop/02_class_calculator.py index 91d567c..3c441ea 100644 --- a/basics/08_oop/02_class_calculator.py +++ b/basics/08_oop/02_class_calculator.py @@ -7,26 +7,26 @@ def __init__(self, choose, num): self.choose = choose self.num = num - def Square(self, Num): - self.Num = Num - Num = Num ** 2 # For Square - result = round(Num, 2) + def square(self, num): + self.num = num + num = num ** 2 # For Square + result = round(num, 2) print(f"Here is Your Square: {result}") - def Cube(self, Num): - self.Num = Num - Num = Num ** 3 # For Cube - result = round(Num, 2) + def cube(self, num): + self.num = num + num = num ** 3 # For Cube + result = round(num, 2) print(f"Here is Your Cube: {result}") - def SquareRoot(self, Num): - self.Num = Num - Num = Num ** 0.5 # For Square Root - result = round(Num, 2) + def square_root(self, num): + self.num = num + num = num ** 0.5 # For Square Root + result = round(num, 2) print(f"Here is Your SquareRoot: {result}") @staticmethod - def Wrong(): + def wrong(): print("Wrong Number!") @@ -35,10 +35,10 @@ def Wrong(): num = Calculator(choose, Number) if choose == 1: - num.Square(Number) + num.square(Number) elif choose == 2: - num.Cube(Number) + num.cube(Number) elif choose == 3: - num.SquareRoot(Number) + num.square_root(Number) else: - num.Wrong() + num.wrong() diff --git a/basics/08_oop/04_class_encapsulation.py b/basics/08_oop/04_class_encapsulation.py index 1b416db..ce475c2 100644 --- a/basics/08_oop/04_class_encapsulation.py +++ b/basics/08_oop/04_class_encapsulation.py @@ -22,33 +22,33 @@ def __init__(self, name, level, health): self._health = health # Private variable for health @property - def Name(self): + def name(self): return self._name @property - def Level(self): + def level(self): return self._level @property - def Health(self): + def health(self): return self._health - @Name.setter - def Name(self, value): + @name.setter + def name(self, value): if value != "": self._name = value else: print("Name Can't be Blank!") - @Level.setter - def Level(self, value): + @level.setter + def level(self, value): if 1 <= value <= 50: self._level = value else: print("Level Must be between 1 and 50") - @Health.setter - def Health(self, value): + @health.setter + def health(self, value): if 0 <= value <= 100: self._health = value else: @@ -59,12 +59,12 @@ def Health(self, value): Adam = GameCharacter("Adam", 45, 98) print("Output") -print(f"\tName: {Adam.Name}\n\tLevel: {Adam.Level}\n\tHealth: {Adam.Health}\n") +print(f"\tName: {Adam.name}\n\tLevel: {Adam.level}\n\tHealth: {Adam.health}\n") print("Updated Output:\n") # Trying to set invalid values -Adam.Name = "" -Adam.Level = -51 -Adam.Health = -101 +Adam.name = "" +Adam.level = -51 +Adam.health = -101 -print(f"\tName: {Adam.Name}\n\tLevel: {Adam.Level}\n\tHealth: {Adam.Health}\n") +print(f"\tName: {Adam.name}\n\tLevel: {Adam.level}\n\tHealth: {Adam.health}\n") diff --git a/basics/08_oop/08_oop_examples.py b/basics/08_oop/08_oop_examples.py index 6a6a1c1..16b790d 100644 --- a/basics/08_oop/08_oop_examples.py +++ b/basics/08_oop/08_oop_examples.py @@ -6,33 +6,33 @@ def __init__(self, power, health, speed): # Constructor to initialize object self._speed = speed # Private variable for speed @property - def Power(self): # Getter 1 for power + def power(self): # Getter 1 for power return self._power @property - def Health(self): # Getter 2 for health + def health(self): # Getter 2 for health return self._health @property - def Speed(self): # Getter 3 for speed + def speed(self): # Getter 3 for speed return self._speed - @Speed.setter - def Speed(self, value): # Setter 1 for speed + @speed.setter + def speed(self, value): # Setter 1 for speed if 0 < value < 100: self._speed = value else: print("Values Must be between 0 and 100") - @Power.setter - def Power(self, value): # Setter 2 for power + @power.setter + def power(self, value): # Setter 2 for power if 0 < value < 100: self._power = value else: print("Values Must be between 0 and 100") - @Health.setter - def Health(self, value): # Setter 3 for health + @health.setter + def health(self, value): # Setter 3 for health if 0 < value < 100: self._health = value else: @@ -43,22 +43,22 @@ def Health(self, value): # Setter 3 for health devil = Monster(12, 90, 34) # Accessing values using getters (like variables) -print(f"Here is Your Health : {devil.Health} Power : {devil.Power} & Speed : {devil.Speed}\nUpdated Data") +print(f"Here is Your Health : {devil.health} Power : {devil.power} & Speed : {devil.speed}\nUpdated Data") # Modifying values using setters (with validation) -devil.Speed = 90 -devil.Health = 98 -devil.Power = 89 +devil.speed = 90 +devil.health = 98 +devil.power = 89 # Accessing updated values using getters -print(f"Here is Your Health : {devil.Health} Power : {devil.Power} & Speed : {devil.Speed}\n") +print(f"Here is Your Health : {devil.health} Power : {devil.power} & Speed : {devil.speed}\n") devil = Monster(12,90,34) -print(f"Here is Your Health : {devil.Health} Power : {devil.Power} & Speed : {devil.Speed}\nUpdated Data") -devil.Speed = 90 -devil.Health = 98 -devil.Power = 89 -print(f"Here is Your Health : {devil.Health} Power : {devil.Power} & Speed : {devil.Speed}\n") +print(f"Here is Your Health : {devil.health} Power : {devil.power} & Speed : {devil.speed}\nUpdated Data") +devil.speed = 90 +devil.health = 98 +devil.power = 89 +print(f"Here is Your Health : {devil.health} Power : {devil.power} & Speed : {devil.speed}\n") diff --git a/basics/08_oop/09_inheritance_types.py b/basics/08_oop/09_inheritance_types.py index fd9c54b..3e95d70 100644 --- a/basics/08_oop/09_inheritance_types.py +++ b/basics/08_oop/09_inheritance_types.py @@ -9,15 +9,15 @@ class LivingThings: isLive = True - def CanHearSound(self): + def can_hear_sound(self): print("We Can Hear Sound") class HumanBeings(LivingThings): # Single Level Inheritance - def Intelligent(self): + def intelligent(self): print("Most Intelligent!") class Animals(HumanBeings): # Multi-Level Inheritance - def Powerful(self): + def powerful(self): print("Powerful") diff --git a/basics/08_oop/10_inheritance_multilevel.py b/basics/08_oop/10_inheritance_multilevel.py index fceb798..de5809f 100644 --- a/basics/08_oop/10_inheritance_multilevel.py +++ b/basics/08_oop/10_inheritance_multilevel.py @@ -12,10 +12,10 @@ class Pets(Animals): class Dog(Pets): # We don't use @staticmethod As we use Self - def Bark(self): + def bark(self): self.bark = True print(self.bark) simbu = Dog() -simbu.Bark() +simbu.bark() diff --git a/basics/08_oop/12_inheritance_super.py b/basics/08_oop/12_inheritance_super.py index 2fb14f1..4f0d152 100644 --- a/basics/08_oop/12_inheritance_super.py +++ b/basics/08_oop/12_inheritance_super.py @@ -6,7 +6,7 @@ def __init__(self): print(f"LivingThings Constructor Called ! ") @classmethod #--->The @classmethod decorator is used to work with class variables (class values) using the class (cls) instead of instance variables (self).” - def CanHearSound(self): + def can_hear_sound(self): print(f"We Are Hear Sound {self.isLive}") class HumanBeings(LivingThings): @@ -15,7 +15,7 @@ def __init__(self): super().__init__() print("HumanBeings Constructor Called !") - def Intelligent(): + def intelligent(): print("Most Intelligent ? ") class Animals(HumanBeings): @@ -24,9 +24,9 @@ def __init__(self): super().__init__() print("Animals Constructor Called !") - def Powerful(): + def powerful(): print("Powerful") -Ram = LivingThings() -Ram.isLive = 12 -Ram.CanHearSound() \ No newline at end of file +ram = LivingThings() +ram.isLive = 12 +ram.can_hear_sound() \ No newline at end of file diff --git a/basics/08_oop/16_salary_increment.py b/basics/08_oop/16_salary_increment.py index 444861d..fdefb47 100644 --- a/basics/08_oop/16_salary_increment.py +++ b/basics/08_oop/16_salary_increment.py @@ -11,11 +11,11 @@ def __init__(self,salary=0,increment=0): self.increment = increment @property - def SalaryAfterIncrement(self): + def salary_after_increment(self): return self._salary + (self._salary * (self.increment/100)) - @SalaryAfterIncrement.setter - def SalaryAfterIncrement(self,real_salary): + @salary_after_increment.setter + def salary_after_increment(self, real_salary): if real_salary <= 5000: self.increment = 10 @@ -32,12 +32,12 @@ def SalaryAfterIncrement(self,real_salary): #Output -Rajesh = Employee() -Rajesh.SalaryAfterIncrement = 50000 -print(Rajesh.SalaryAfterIncrement) #Output 51000 +rajesh = Employee() +rajesh.salary_after_increment = 50000 +print(rajesh.salary_after_increment) #Output 51000 -Rajesh.SalaryAfterIncrement = 5000 -print(Rajesh.SalaryAfterIncrement) #Output 5500 +rajesh.salary_after_increment = 5000 +print(rajesh.salary_after_increment) #Output 5500 diff --git a/exercises/1000_programs/medium/1306_jump_game_iii.py b/exercises/1000_programs/medium/1306_jump_game_iii.py index 9c39d86..2acd0b3 100644 --- a/exercises/1000_programs/medium/1306_jump_game_iii.py +++ b/exercises/1000_programs/medium/1306_jump_game_iii.py @@ -1,4 +1,4 @@ -def canReach(arr: list[int], start: int) -> bool: +def can_reach(arr: list[int], start: int) -> bool: # 1. Initialize the queue with our starting position queue = [start] # 2. Keep track of visited indices so we don't get stuck in a loop @@ -27,10 +27,10 @@ def canReach(arr: list[int], start: int) -> bool: # --- Test Cases --- if __name__ == "__main__": # Test 1: Should be True (can reach index 5 or 6) - print(f"Test 1: {canReach([4,2,3,0,3,1,2], 5)}") + print(f"Test 1: {can_reach([4, 2, 3, 0, 3, 1, 2], 5)}") # Test 2: Should be True (start is already 0) - print(f"Test 2: {canReach([4,2,3,0,3,1,2], 0)}") + print(f"Test 2: {can_reach([4, 2, 3, 0, 3, 1, 2], 0)}") # Test 3: Should be False (cannot reach 0) - print(f"Test 3: {canReach([3,0,2,1,2], 2)}") \ No newline at end of file + print(f"Test 3: {can_reach([3, 0, 2, 1, 2], 2)}") \ No newline at end of file diff --git a/exercises/1000_programs/medium/1815_fresh_donuts.py b/exercises/1000_programs/medium/1815_fresh_donuts.py index af2acdc..82aa69a 100644 --- a/exercises/1000_programs/medium/1815_fresh_donuts.py +++ b/exercises/1000_programs/medium/1815_fresh_donuts.py @@ -1,30 +1,30 @@ from functools import lru_cache -def maxHappyGroups(batchSize, groups): - # Time Complexity: O(k^m) where k is batchSize and m is number of groups - # Space Complexity: O(batchSize) +def max_happy_groups(batch_size, groups): + # Time Complexity: O(k^m) where k is batch_size and m is number of groups + # Space Complexity: O(batch_size) # 1. Simplify groups by taking modulo - remainder_counts = [0] * batchSize + remainder_counts = [0] * batch_size happy_groups = 0 for g in groups: - rem = g % batchSize + rem = g % batch_size if rem == 0: happy_groups += 1 else: remainder_counts[rem] += 1 - # 2. Match complements (e.g., remainder 1 and batchSize-1) - for i in range(1, batchSize // 2 + 1): - if i == batchSize - i: + # 2. Match complements (e.g., remainder 1 and batch_size-1) + for i in range(1, batch_size // 2 + 1): + if i == batch_size - i: happy_groups += remainder_counts[i] // 2 remainder_counts[i] %= 2 else: - pairs = min(remainder_counts[i], remainder_counts[batchSize - i]) + pairs = min(remainder_counts[i], remainder_counts[batch_size - i]) happy_groups += pairs remainder_counts[i] -= pairs - remainder_counts[batchSize - i] -= pairs + remainder_counts[batch_size - i] -= pairs # 3. DFS to optimize remaining groups @lru_cache(None) @@ -35,13 +35,13 @@ def dfs(current_rem, counts): if total_remaining == 0: return 0 - for i in range(1, batchSize): + for i in range(1, batch_size): if counts[i] > 0: # Create a new tuple state with counts[i] decremented, avoiding list conversion new_counts = counts[:i] + (counts[i] - 1,) + counts[i + 1:] is_happy = 1 if current_rem == 0 else 0 - res = is_happy + dfs((current_rem + i) % batchSize, new_counts) + res = is_happy + dfs((current_rem + i) % batch_size, new_counts) max_val = max(max_val, res) return max_val @@ -51,5 +51,5 @@ def dfs(current_rem, counts): # Driver Code if __name__ == "__main__": - print(f"Test 1: {maxHappyGroups(3, [1,2,3,4,5,6])}") # Expected: 4 - print(f"Test 2: {maxHappyGroups(4, [1,3,2,5,2,2,1,6])}") # Expected: 4 \ No newline at end of file + print(f"Test 1: {max_happy_groups(3, [1, 2, 3, 4, 5, 6])}") # Expected: 4 + print(f"Test 2: {max_happy_groups(4, [1, 3, 2, 5, 2, 2, 1, 6])}") # Expected: 4 \ No newline at end of file diff --git a/exercises/1000_programs/medium/1870_min_speed.py b/exercises/1000_programs/medium/1870_min_speed.py index 29352df..ccccc9e 100644 --- a/exercises/1000_programs/medium/1870_min_speed.py +++ b/exercises/1000_programs/medium/1870_min_speed.py @@ -1,6 +1,6 @@ import math -def minSpeedOnTime(dist, hour): +def min_speed_on_time(dist, hour): # If it's impossible to cover all trains even at infinite speed # (need at least 1 hour per train except the last one) if len(dist) - 1 >= hour: @@ -23,6 +23,6 @@ def minSpeedOnTime(dist, hour): return ans # Driver code to test locally if __name__ == "__main__": - print(minSpeedOnTime([1,3,2], 6)) # Expected: 1 - print(minSpeedOnTime([1,3,2], 2.7)) # Expected: 3 - print(minSpeedOnTime([1,3,2], 1.9)) # Expected: -1 \ No newline at end of file + print(min_speed_on_time([1, 3, 2], 6)) # Expected: 1 + print(min_speed_on_time([1, 3, 2], 2.7)) # Expected: 3 + print(min_speed_on_time([1, 3, 2], 1.9)) # Expected: -1 \ No newline at end of file diff --git a/exercises/1000_programs/medium/1880_word_sum.py b/exercises/1000_programs/medium/1880_word_sum.py index 4119fa9..2613577 100644 --- a/exercises/1000_programs/medium/1880_word_sum.py +++ b/exercises/1000_programs/medium/1880_word_sum.py @@ -5,9 +5,9 @@ def word_to_number(word: str) -> int: return int(num_str) -def is_sum_equal(firstWord: str, secondWord: str, targetWord: str) -> bool: - return word_to_number(firstWord) + word_to_number(secondWord) == word_to_number( - targetWord +def is_sum_equal(first_word: str, second_word: str, target_word: str) -> bool: + return word_to_number(first_word) + word_to_number(second_word) == word_to_number( + target_word )