From my understating of OP's logic, I do not think we HAVE TO start from LSB.
OP's logic is:
Construct valid strings using DP --> Compare with original value ---> Eliminate unqualified ones --> Get final result.
Assume that we did not reverse the original binary expression, then we could also construct the valid strings using DP same as the OP's solution and them compare and eliminate.
I also wonder if it is a must that we reverse the original string and the compare from the right-most char in the reversed string.