Getting Started
- Install NUnit via Nuget Package Console
- Run the tests in the test runner
- FindDuplicate - Find all duplicate characters in a given string
- DetectAnagram - Find if the two input strings are anagrams
- FindFirstNonRepeatingCharacter - Finds first non-repeating character in a given string
- ReverseStringIteratively - Reverse a string using iterations
- ReverseStringRecursively - Reverse a string using recursion
- ContainsOnlyDigits - Checks if given string only contains digits
- ContainsOnlyDigitsUsingRegex - Checks if given string only contains digits using Regular Expressions
- CountVowels - Count vowels in given string
- CountConstants - Count constants in a given string
- FindPermutations - Find all permutations of a given string (includes duplicates)
- CheckRotation - Check if two strings are rotation of each other
- IsPalindrome - Check if given string is palindrome
- Add - Adds a node
- Validate - Check if tree is valid
- Remove - Remove a node
- PreOrder - PreOrder Traversal Algorithm (node-left-right) - ideal for printing hierarchy
- InOrder - InOrder Traversal Algorithm (left-node-right) - ideal for printing sequence for BST
- PostOrder - PostOrder Traversal Algorithm (left-right-node) - ideal for performing tree-based operations
- PreOrderWithoutRecursion - PreOrder Traversal Algorithm w/o recursion
- InOrderWithoutRecursion - InOrder Traversal Algorithm w/o recursion
- PostOrderWithoutRecursion - PostOrder Traversal Algorithm w/o recursion
- CountLeafNodes - Count all leaf nodes using recursion
- CountLeafNodesWithoutRecursion - Count all leaf nodes w/o recursion
- BubbleSort - Average & Worst: O(n2) and Best: O(n)
- QuickSort - Average & Best: O(n log n) and Worst: O(n2)
- InsertionSort - Average & Worst: O(n2) and Best: O(n)
- MergeSort - O(n log n)
- FindUsingBinarySearch - Find array index of element using binary search
- CalculateFibonacciRecursively - Calculate Fibonacci using recursion
- CalculateFibonacciDynamically - Calculate Fibonacci using a cache
- CalculateFibonacciIteratively - Calculate Fibonacci using iterations
- MinHeap - Priority queue based on min heap (Add, Remove, GetMin)
- MinHeapArray - Min heap implmented as an array (Add, Remove, GetMin)
- KnapsackProblem.cs - Bottom up approach by building cache before converging to a solution