This repository contains a collection of projects developed as part of the interview preparation curriculum at Holberton School. Each project focuses on different algorithmic concepts and problem-solving techniques, helping students enhance their skills and prepare for technical interviews.
This project explores the concept of searching and manipulating lists in Python. You will implement a function to determine if all the boxes in a list can be unlocked by finding the correct keys.
The 0x01-insert_in_sorted_linked_list project focuses on manipulating linked lists in C. You will implement a function to insert a node into a sorted singly linked list while maintaining the sorted order.
In this project, you will work with heaps and binary trees in C. You will implement a function to insert a value into a binary max heap and maintain the heap property.
The 0x03-minimum_operations project explores problem-solving and algorithmic thinking in Python. You will solve a puzzle using a specific set of operations and determine the minimum number of operations required to reach a target.
In this project, you will work with 2D arrays in C and implement a function to perform the "sandpile" operation, which involves toppling grains of sand and redistributing them in a grid.
The 0x05-linked_list_palindrome project focuses on linked list manipulation in Python. You will implement a function to determine if a linked list is a palindrome.
In this project, you will work with file I/O in Python and process log files. You will implement a script to parse and aggregate data from log files.
The 0x07-linked_list_cycle project explores the concept of cycle detection in linked lists. You will implement a function to determine if a linked list contains a cycle.
In this project, you will work with integer manipulation in C. You will implement a function to check if an integer is a palindrome.
The 0x09-utf8_validation project focuses on bit manipulation and validation in C. You will implement a function to check if a given array of data represents a valid UTF-8 encoding.
In this project, you will work with arrays and sliding operations in C. You will implement a function to slide and merge an array of integers according to a specific set of rules.
The 0x0B-menger project explores recursive patterns and fractals in Python. You will implement a function to draw a 2D Menger sponge fractal.
In this project, you will work with backtracking and the N-queens problem in Python. You will implement a solution to place N queens on an N×N chessboard without any two queens threatening each other.
The 0x0D-sorted_array_to_avl project focuses on binary search trees and AVL trees in C. You will implement a function to build an AVL tree from a sorted array of integers.
In this project, you will work with linked lists and skip lists in C. You will implement a function to search for a value in a sorted skip list of integers.
The 0x0F-starwars_api project explores the concept of pagination in API development. You will implement a script to make HTTP requests to the Star Wars API and return a list of all the characters from all the Star Wars movies.
In this project, you will work with circular doubly linked lists in C. You will implement a function to insert a node into a sorted circular doubly linked list.
The 0x1B-radix_sort project focuses on sorting algorithms and Big O notation. You will implement a function to sort an array of integers in ascending order using the radix sort algorithm.
In this project, you will work with 2D arrays in Python. You will implement a function to compute the perimeter of an island in a grid.
The 0x0D-avl_trees project focuses on binary search trees and AVL trees in C. You will implement functions to check if a binary tree is a valid AVL tree and to insert a value into an AVL tree.
In this project, you will work with string manipulation and pattern matching in C. You will implement a function to compare two strings and determine if they can be considered identical, where one string may contain special wildcard characters.
The 0x0F-pascal_triangle project explores the concept of Pascal's triangle in Python. You will implement a function to return a list of lists of integers representing Pascal's triangle of a given size.
In this project, you will work with arrays and histograms in C. You will implement a function to calculate how much water will be retained after it rains.
The 0x11-heap_sort project focuses on sorting algorithms and Big O notation. You will implement a function to sort an array of integers in ascending order using the heap sort algorithm.
In this project, you will work with binary search in C. You will implement a function to search for a value in a sorted array of integers using the binary search algorithm.
The 0x13-count_it project explores the concept of pagination in API development. You will implement a script to make HTTP requests to the Reddit API and return a count of all the keywords in the titles of a given subreddit.
In this project, you will work with heaps and binary trees in C. You will implement a function to extract the root value from a binary max heap and maintain the heap property.
The 0x15-infinite_multiplication project focuses on integer multiplication in C. You will implement a program to multiply two positive integers of arbitrary size and print the result.
In this project, you will work with 2D arrays in Python. You will implement a function to rotate a 2D matrix 90 degrees clockwise.
The 0x17-find_the_loop project explores the concept of cycle detection in linked lists. You will implement a function to find the first node of a loop in a linked list.
In this project you will work with sorting algorithms and Big O notation. You will implement a function to sort an array of integers in ascending order using the merge sort algorithm.
The 0x19-making_change project focuses on dynamic programming and algorithmic thinking in Python. You will implement a function to make change for a given amount of money using the fewest number of coins.
In this project, you will work with string manipulation and pattern matching in Python. You will implement a function to find all the possible substrings containing a list of given words within a given string.
The 0x22-prime_game project explores the concept of prime numbers in Python. You will implement a function to determine the winner of a prime number game.