Class Solution

java.lang.Object
g0701_0800.s0761_special_binary_string.Solution

public class Solution extends Object
761 - Special Binary String.<p>Hard</p> <p><strong>Special binary strings</strong> are binary strings with the following two properties:</p> <ul> <li>The number of <code>0</code>&rsquo;s is equal to the number of <code>1</code>&rsquo;s.</li> <li>Every prefix of the binary string has at least as many <code>1</code>&rsquo;s as <code>0</code>&rsquo;s.</li> </ul> <p>You are given a <strong>special binary</strong> string <code>s</code>.</p> <p>A move consists of choosing two consecutive, non-empty, special substrings of <code>s</code>, and swapping them. Two strings are consecutive if the last character of the first string is exactly one index before the first character of the second string.</p> <p>Return <em>the lexicographically largest resulting string possible after applying the mentioned operations on the string</em>.</p> <p><strong>Example 1:</strong></p> <p><strong>Input:</strong> s = &ldquo;11011000&rdquo;</p> <p><strong>Output:</strong> &ldquo;11100100&rdquo;</p> <p><strong>Explanation:</strong></p> <pre><code> The strings &quot;10&quot; [occuring at s[1]] and &quot;1100&quot; [at s[3]] are swapped. This is the lexicographically largest string possible after some number of swaps. </code></pre> <p><strong>Example 2:</strong></p> <p><strong>Input:</strong> s = &ldquo;10&rdquo;</p> <p><strong>Output:</strong> &ldquo;10&rdquo;</p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= s.length <= 50</code></li> <li><code>s[i]</code> is either <code>'0'</code> or <code>'1'</code>.</li> <li><code>s</code> is a special binary string.</li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • makeLargestSpecial

      public String makeLargestSpecial(String s)