- Chapter 1: Strings and Arrays
- Chapter 2: Linked Lists
- Chapter 3: Stacks
- Chapter 5: Bit manipulation
- Chapter 8: Recursion
- Chapter 9: Sorting and Searching
- Strings
- Finding palindromes
- Using suffix arrays and LCP arrays
- Using suffix trees
- Using Manacher's linear time algorithm
- Finding palindromes