https://freecpp.com/palindrome-partitioning/