Read the problem and summarise the task requirements.
Try to keep your response to a couple of sentences.
Discuss why dynamic programming might be applicable to this problem.
Propose a subproblem specification.
Start with just enough to answer the problem.
If you were to use the operation (deleting a run of a single character), are you left with a part of the string that corresponds to another (smaller) subproblem?
If not, you’ll need additional parameters.
There is a bit of a trick here!
Form a recurrence between your subproblems.
Analyse the time complexity of your algorithm, and estimate the running time.
If the algorithm is too slow, consider optimisations to reduce the number of subproblems or the work per subproblem.