<p>Given two binary strings <code>a</code> and <code>b</code>, return <em>their sum as a binary string</em>.</p> <p> </p> <p><strong>Example 1:</strong></p> <pre><strong>Input:</strong> a = "11", b = "1" <strong>Output:</strong> "100" </pre><p><strong>Example 2:</strong></p> <pre><strong>Input:</strong> a = "1010", b = "1011" <strong>Output:</strong> "10101" </pre> <p> </p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= a.length, b.length <= 10<sup>4</sup></code></li> <li><code>a</code> and <code>b</code> consist only of <code>'0'</code> or <code>'1'</code> characters.</li> <li>Each string does not contain leading zeros except for the zero itself.</li> </ul>