1. ► Rabin-Karp algorithm relies on hash function to convert strings to numbers

2. ► String matching is quite common in scripting languages

3. ► Rabin-Karp algorithm reuses previously calculated hash values

4. ► For overlapping optimal substructure, dynamic programming gives optimal solution

5. ► Heuristic solutions can provide reasonable solutions quite fast

6. ► Dynamic programming works in the top down manner

7. ► Dijkstraâ€™s algorithm makes greedy choice

8. ► Only mobility based heuristic can be applied in list scheduling

9. ► Brute force string matching relies on char by char comparison

10. ► Dynamic programming makes use of previously calculated solution

11. ► Dynamic programming also follows divide and conquer approach

12. ► Fibonacci series can be calculated efficiently with dynamic programming

13. ► Approximation algorithms provide bounds on the quality of the solution mathematically

14. ► Graph coloring can be used to solve processor register allocation in compilers

15. ► Average case complexity of Rabin-Karp is O(nm)