My initial thought was recursive (a op b) evaluation, which doesn't work quite well.
The correct way is to split by op. And, we can cache calculaton result for given substr.
https://leetcode.com/discuss/48577/my-c-divide-and-conquer-recursive-solution-%26-dp-solution