LucidProgramming YouTube Tutorial Scripts:
LucidProgramming is my YouTube channel and this repo consists of a collection of scripts corresponding to YouTube tutorials for my YouTube channel.
Sponsoring
If you found this code useful in your programming journey, please consider sponsoring the creation of my content by clicking on the "Sponsor" button in this repo.
The funding goes to the creation of new videos, code, and time spent responding to questions, comments, etc.
Your support allows me to spend more time on creating more content to help learners!
I thank the following supporters for helping sponsor the free content here:
Contributing
I would love to compile solutions to all of the problems here, as well as offer solutions in different languages. Just create a pull request with your changes.
Index
Algorithms
Greedy Algorithms
- Optimal Task Assingment
Determine the optimal way to assign two tasks to minimize total time.
Recursion
-
Count Consonants
Count the number of consonants present in a string. -
Find Uppercase
Given a string, find the first uppercase character. -
Product Two Numbers
Recursively calculate the product of two numbers. -
String Length
Recursively calculate the length of a given string.
Search Algorithms
-
Binary Search
Iterative and recursive implementation and comparison of binary search. -
Python's Bisect Method
We cover the "bisect" function in Python, and how this can be used to apply to problems requiring binary search. -
Cyclic Sorted Array
We use binary search to determine the first element of a sorted cyclically rotated list. -
Find Bitonic Peak
Determine what the "bitonic peak" of a sequence of numbers is using binary search. -
Find Bitonic Peak
Determine what the "bitonic peak" of a sequence of numbers is using binary search. -
Find Closest Number
Given an array of sorted integers. We need to find the closest value to the given number. -
Find First Duplicate Entry
Write a function that takes an array of sorted integers and a key and returns the index of the first occurrence of that key from the array. -
Find Fixed Point
Given an array of n distinct integers sorted in ascending order, write a function that returns a "fixed point" in the array. If there is not a fixed point return "None". -
Integer Square Root
Write a function that takes a non-negative integer and returns the largest integer whose square is less than or equal to the integer given.
Sorting Algorithms
-
Intersect Sorted Array
Calculate the intersection (common elements) between two sorted arrays. -
Remove First Name Duplicates
Given a list of first/last name pairs, eliminate any entries with duplicate first names.
String Processing
-
Convert Integer to String
You are given some integer as input. Convert the integer you are given to a string. Do not make use of the built-in "str" function. -
Convert String to Integer
You are given some numeric string as input. Conver the string you are given to an integer. Do not make use of the built-in "int" function. -
Is Anagram
Given a string, determine if it is an anagram, i.e. a word or phrase formed by rearranging the letters of a different word or phrase. -
Is Palindrome
Given a string, determine if it is a palindrome, i.e. a word or phrase that can be read the same forwards and backwards. -
Is Permutation
Given two strings, determine if one string is a permutation of the other. -
Is Palindrome Permutation
Given a string, determine if it is a permutation of a palindrome. -
Is Unique
Implement an algorithm to determine if a string has all unique characters. -
Look-and-Say Sequence
Generate the so-called "Look-and-Say" sequence -
Spreadsheet Decode
Given a list of first/last name pairs, eliminate any entries with duplicate first names. -
Spreadsheet Encode
Given a column string as formatted in a spreadsheet program, write a function that returns a number corresponding to that particular column.
Bit Manipulation
-
Find Set Bit
Given a number having only one "1" and all other "0"s in its binary representation, find position of set bit. -
Is Even or Odd
Write a program to determine if a given number is even or odd. Do not make use of the modulus operator. -
Is Nth Bit Set
Write a program that takes an integer and tests whether the n-th bit in the binary representation of that integer is set of not. -
Is Power Two
Given a positive integer, check if the integer is a power of 2. -
Set Nth Bit
Write a program that takes an integer and sets the n-th bit in the binary representation of that integer. -
Toggle Nth Bit
Write a program that takes an integer and toggles the n-th bit in the binary representation of that integer. -
Unset Nth Bit
Write a program that takes an integer and unsets the n-th bit in the binary representation of that integer. -
Unset Right-Most Bit
Write a program that takes an integer and unsets the right most bit in the binary representation of that integer
Data Science
- [Data Science, Kaggle, Wine and Python -- Part 1: Pandas] (https://www.youtube.com/watch?v=BQj7sy2MmOA) We go over what the agenda is for the series and go over some basics in the pandas module.
Data Structures
Arrays
-
Arbitrary Precision Arithmetic
Given two arrays that each represent an integer, compute the sum between these numbers. -
Array Advance
Given an array with integers that correspond to moves that can be made from left to right, determine if it is possible to advance to the end of the array. -
Buy and Sell Stock Once
Given a list of end-day stock prices, determine what the maximum profit one can make by buying and selling a single stock. -
Two Sum
Given an array of integers, return the two numbers such that they add up to a specific target.
Bloom Filter
- Bloom Filters and Pokemon
An introduction to Bloom filters using Pokemon to explain key concepts.
Linked List
Singly Linked List
-
Count Occurrences
Given a data element, determine how many nodes in a singly linked list contain this piece of data. -
Deletion
Given a data element, delete all nodes in a singly linked list that have this given data element. -
Insertion
Insert an element into a singly linked list. -
Is Palindrome
Given a singly linked list, determine if the data elements form a palindrome. -
Length
Given a singly linked list, calculate the length, i.e. the number of nodes in the linked list. -
Merge Sorted
Given two sorted singly linked lists, produce a merged singly linked list that is also sorted. -
Nth-to-Last
Given a singly linked list and an integer N, determine the Nth-to-last node in the list. -
Remove Duplicates
Given a singly linked list, remove all nodes with duplicate data elements. -
Reverse
Given a singly linked list, reverse the linked list. -
Rotate
Given a singly linked list and an integer, rotate the contents of the singly linked list. -
Sum Two Lists
Given two singly linked lists representing integers, produce a third singly linked list that represents the sum of these integers. -
Swap Nodes
Given a singly linked list and two nodes, swap the first node with the second. -
Tail to Head
Given a singly linked list swap the tail of the list with the head.
Circular Linked List
-
Insert
Insert a node into a circular linked list. -
Is Circular Linked List
Given a linked list, determine if it is a circular linked list. -
Josephus Problem
Solve the so-called Josephus Problem using a circular linked list. -
Remove Node
Remove node from a circular linked list. -
Split List
Given a circular linked list an an integer, split the circular linked list.
Doubly Linked List
-
Add Before/Add After
Add a node in a doubly linked list before a given node. Add a node in a doubly linked list after a given node. -
Append/Prepend
Append (add to back) a node to a doubly linked list. Prepend (add to front) a node to a doubly linked list. -
Delete
Delete a node in a doubly linked list. -
Insert
Insert a node in a doubly linked list. -
Pairs with Sum
Obtain the pairs of nodes that sum up to a given target element. -
Remove Duplicates
Remove duplicates from a doubly linked list. -
Reverse
Reverse a doubly linked list.
Stack
-
Stack Implementation
Impelementation and description of the stack data structure. -
Balanced Parens
Using the stack data structure, determine if a string of parentheses are properly balanced or not. -
Divide by Two
Perform division by two using the stack data structure. -
Reverse String
Reverse a string using the stack data structure.
Go
-
1. Hello World
Introduction to the "Go" Programming language. -
2. Values
Cover the concept of "values" in Go. -
3. Variables
Cover the concept of "variables" in Go. -
4. Constants
Cover the concept of "constants" in Go. -
5. Loops
Cover looping constructs in Go. -
6. If/Else
Cover "if/else" conditonal statements. -
7. Switch
Cover conditional "switch" statements. -
8. Arrays
Cover the concept of "arrays" in Go. -
9. Slices
Cover the concept of slicing in arrays in Go. -
10. Maps
Cover the concept of "maps" in Go. -
11. Range
Cover the "range" function in Go. -
12. Functions
Cover the concept of "functions" in Go. -
13. Multiple Return Values
Cover how to create functions with multiple return values in Go. -
14. Variadic Functions
Cover how to create functions with multiple types. -
15. Closures
Cover the concept of "closures" in Go. -
16. Recursion
Cover the concept of "recursion" in Go. -
17. Pointers
Cover the concept of "pointers" in Go. -
18. Structs
Cover the concept of "structs" in Go. -
19. Methods
Cover the concept of "methods" in Go. -
20. Interfaces
Cover the concept of "interfaces" in Go.
imgur Python
-
Python and the imgur API: Setup and Installation (Part 1/3)
Setup for imgur API to access via Python module. -
Python and the imgur API: Authentication (Part 2/3)
Authenticating our imgur application. -
Python and the imgur API: Image Upload (Part 3/3)
Uploading an image to an imgur gallery using the Python imgur module.
Multiprocessing and Threading
-
Multiprocessing in Python: Introduction (Part 1)
An introduction to the multiprocessing module in Python. -
Multiprocessing in Python: Introduction (Part 2)
A continuation of the introduction of the multiprocessing module in Python. -
Multiprocessing in Python: Locks
An introduction to lock objects in the multiprocessing module. -
Multiprocessing in Python: Logging
We see how to make use of the multiprocessing logging functionality. -
Multiprocessing in Python: Pool
We see how to make use of the multiprocessing Pool class and how to spawn multiple processes. -
Multiprocessing in Python: Process Communication
We see how to make use of the multiprocessing communicate information among different processes.
Natural Language Processing
-
Natural Language Processing in Python: Part 1 -- Installation and Getting Started
Accommodating blog post for this video can be found here. -
Natural Language Processing in Python: Part 2 -- Accessing Text Resources
Accommodating blog post for this video can be found here. -
Natural Language Processing in Python: Part 3 -- Generating Word Clouds
Accommodating blog post for this video can be found here. -
Natural Language Processing in Python: Part 4 -- WordNet
Accommodating blog post for this video can be found here. -
Natural Language Processing in Python: Part 5 -- Stemming and Lemmatization
Accommodating blog post for this video can be found here.
Podcasts and Interviews
-
Transitioning from Non-Tech to Tech: An Interview with Beau Carnes
A conversation with Beau Carnes regarding his journey in shifting from a teaching career to a technical career. -
Preparing for a Technical Interview: An Interview with Sam Gavis-Hughson of Byte-by-Byte
A conversation with Sam Gavis-Hughson of Byte-by-Byte about how to effectively prepare for a technical interview.
System Design
-
System Design: URL Shortener -- Introduction
An introduction to system design interviews and Part 1 of designing the URL shortener. -
System Design: URL Shortener -- Calculating Estimates
Part 2 of the URL shortener system design interview question where we cover how to roughly estimate costs for the project. -
System Design: URL Shortener -- Database Design
Part 3 of the URL shortener system design interview question where we cover database design. -
System Design: General Approach
A general overview of how to approach the system design interview.
Technical Interview
-
Check if String has Unique Characters
Write a script to determine if a given string has all unique characters. -
Is Anagram
Write a script to determine if a given string is an anagram. -
Check if String is Permutation
Given two strings, check if they are permutations of each other. -
Check if String is Palindrome
Given a string, check if it is a palindrome. -
Two Sum Problem
Given an array of integers, return indices of the two numbers such that they add up to a specific target. Each input would have exactly one solution, and don't use the same element twice. -
Single Number Problem
Given an array of integers, every element appears twice except for one. Find that single one. -
FizzBuzz
Solving the infamous "FizzBuzz" problem in Python. -
Iterative and Recursive Factorial
Calculate the factorial of a positive integer. Do so using both an iterative and recursive approach. -
URLify String
Write a method to replace all spaces in a string with '%20'. You may assume that the string has sufficient space at the end to hold the additional characters and that you are given the "true" length of the string. -
One Away
There are three types of edits that can be performed on strings: insert a character, remove a character, or replace a character. Given two strings, write a function to check if they are one edit (or zero edits) away. -
Matrix Median
We are given a row-wise sorted matrix of size r-by-c we need to find the median of the matrix given. It is assumed that r-by-c is always odd. -
String Compression
String Compression: Implement a method to perform basic string compression using the counts of repeated characters. For example, the string "aabcccccaaa" would become a2b1c5a3. If the "compressed" string would not become smaller than the original string, your method should return the original string. You can assume the string has only uppercase and lowercase letters (a-z). -
String Rotation
String Rotation: Given two strings, s1 and s2, write code to check if s2 is a rotation of s1 (e.g. "waterbottle" is a rotation of "erbottlewat"). -
Count Ones in Binary Representation
Find the number of 1s in the binary representation of a number.
Twitter Python
-
Twitter API with Python (Part 1/5)
We make use of the Tweepy module in Python to create a script that allows us to interface with Twitter. -
Twitter API with Python (Part 2/5)
We make use of the Tweepy module in Python to create a script that allows us to interface with Twitter. -
Twitter API with Python (Part 3/5)
We make use of the Tweepy module in Python to create a script that allows us to interface with Twitter. -
Twitter API with Python (Part 4/5)
We make use of the Tweepy module in Python to create a script that allows us to interface with Twitter. -
Twitter API with Python (Part 5/5)
We make use of the Tweepy module in Python to create a script that allows us to interface with Twitter.
Utility Scripts
-
Python: Converting WAV to MP3
Write a script in Python to convert a .wav file to a .mp3 formatted file. -
Markdown: Creating Presentations Using Markdown and Pandoc
Cover how to create slides using pandoc and markdown. -
Sending an Email in Python via Gmail
Send an email from a Python script with Gmail as the email client.
Vim
-
Vim: Setting up Vim for Python Development
Video to set up your Vim environment specifically geared for Python development. -
Vim: Let's Play VimTutor! (Part 1)
Part 1 of going through the built-in Vim tutor. -
Vim: Let's Play VimTutor! (Part 2)
Part 2 of going through the built-in Vim tutor. -
Vim: Let's Play VimTutor! (Part 3)
Part 3 of going through the built-in Vim tutor. -
Vim: Let's Play VimTutor! (Part 4)
Part 4 of going through the built-in Vim tutor. -
Vim: Let's Play VimTutor! (Part 5)
Part 5 of going through the built-in Vim tutor. -
Vim: Let's Play VimTutor! (Part 6)
Part 6 of going through the built-in Vim tutor. -
Vim: Let's Play VimTutor! (Part 7)
Part 7 of going through the built-in Vim tutor.
Web Scraping and Automation
BeautifulSoup
-
BeautifulSoup and Requests: Getting Started and Quick Example
A quick and simple introduction to BeautifulSoup using the Requests module. -
BeautifulSoup in Python: Objects
We cover various objects that one uses in BeautifulSoup and see how they can be made use of.
PyAutoGui
-
PyAutoGui: Automate GUI Applications with Python and PyAutoGui (Part 1)
Introduce the PyAutoGui module and give some initial examples of what can be achieved with it. -
PyAutoGui: Automate the Calculator! (Part 2)
Write a program that makes use of the PyAutoGui module to manipulate the system calculator. -
PyAutoGui: Control the Mouse (Part 3)
Write a program that makes of of the PyAutoGui module to manipulate the mouse.
Robobrowser
-
Using Robobrowser to Login and Extract Data
We use the Robobrowser module to login to a website automatically and extract information once logged in. -
Gift Card Scraper with Python and Robobrowser
We use the Robobrowser module to extract balance information for a given giftcard.
Scrapy
- Scrapy: Setup and First Project
We install the scrapy module and setup an small project.
Selenium
-
Selenium IDE: Installation and βHello Worldβ Example
An introduction to the Selenium IDE where we illustrate some of its automation capabilities. -
Python and Selenium: Using Chrome
If you wish to use Chrome instead of Firefox with Selenium and Python, this video illustrates how to set that up. -
Crawling Pages with Selenium (Part 1/2)
A simple multi-page website is used to illustrate how to extract content and move through pages. -
Crawling Pages with Selenium (Part 2/2)
A simple multi-page website is used to illustrate how to extract content and move through pages. -
Craigslist Scraper with Python and Selenium (Part 1/3)
Write a script using Selenium, Beautiful Soup, and urllib to extract information from the website Craigslist. -
Craigslist Scraper with Python and Selenium (Part 2/3)
Write a script using Selenium, Beautiful Soup, and urllib to extract information from the website Craigslist. -
Craigslist Scraper with Python and Selenium (Part 3/3)
Write a script using Selenium, Beautiful Soup, and urllib to extract information from the website Craigslist. -
Amazon Sheets Budget: Introduction (Part 1/7) Showcase what the overall script and show what will be accomplished in this series.
-
Amazon Sheets Budget Setup Google Sheets and Google Drive API (Part 2/7) Setup Google Sheets and Google Drive API. Install gspread and oauth in Python. Share the spreadsheet to allow access for script.
-
Amazon Sheets Budget: Automate Amazon Search (Part 3/7) Amazon bot for searching for item, picking first one, navigating to page and extracting and cleaning the price.
-
Amazon Sheets Budget: Extracting More Amazon Content (Part 4/7) Adding functionality to extract the Amazon title, AISN, and URL. Storing this in spreadsheet.
-
Amazon Sheets Budget: Updating the Google Sheet (Part 5/7) Price updater component that takes the prices and plugs them into the spreadsheet.
-
Amazon Sheets Budget: Setting up Email Alerts (Part 6/7) Once completed processing, add in functionality for emailing to self. Primarily will refer to other video that describes how to send email in Python.
-
Amazon Sheets Budget: Wrap-Up (Part 7/7) Outro video that wraps up everything and gives a brief overview of what we accomplished in this series.