An original string is encoded by replacing some non-empty substrings with their lengths. You are given two encoded strings s1 and s2 consisting of lowercase letters and digits 1-9.
Digits represent hidden segment lengths. When multiple digits appear consecutively, they may come from one replacement or multiple adjacent replacements (for example, "123" could represent 123, 12 + 3, 1 + 23, or 1 + 2 + 3).
Return true if there exists at least one original string that could produce both s1 and s2; otherwise return false.