java.lang.Object
g1801_1900.s1849_splitting_a_string_into_descending_consecutive_values.Solution

public class Solution extends Object
1849 - Splitting a String Into Descending Consecutive Values.<p>Medium</p> <p>You are given a string <code>s</code> that consists of only digits.</p> <p>Check if we can split <code>s</code> into <strong>two or more non-empty substrings</strong> such that the <strong>numerical values</strong> of the substrings are in <strong>descending order</strong> and the <strong>difference</strong> between numerical values of every two <strong>adjacent</strong> <strong>substrings</strong> is equal to <code>1</code>.</p> <ul> <li>For example, the string <code>s = &quot;0090089&quot;</code> can be split into <code>[&quot;0090&quot;, &quot;089&quot;]</code> with numerical values <code>[90,89]</code>. The values are in descending order and adjacent values differ by <code>1</code>, so this way is valid.</li> <li>Another example, the string <code>s = &quot;001&quot;</code> can be split into <code>[&quot;0&quot;, &quot;01&quot;]</code>, <code>[&quot;00&quot;, &quot;1&quot;]</code>, or <code>[&quot;0&quot;, &quot;0&quot;, &quot;1&quot;]</code>. However all the ways are invalid because they have numerical values <code>[0,1]</code>, <code>[0,1]</code>, and <code>[0,0,1]</code> respectively, all of which are not in descending order.</li> </ul> <p>Return <code>true</code> <em>if it is possible to split</em> <code>s</code> <em>as described above</em>_, or_ <code>false</code> <em>otherwise.</em></p> <p>A <strong>substring</strong> is a contiguous sequence of characters in a string.</p> <p><strong>Example 1:</strong></p> <p><strong>Input:</strong> s = &ldquo;1234&rdquo;</p> <p><strong>Output:</strong> false</p> <p><strong>Explanation:</strong> There is no valid way to split s.</p> <p><strong>Example 2:</strong></p> <p><strong>Input:</strong> s = &ldquo;050043&rdquo;</p> <p><strong>Output:</strong> true</p> <p><strong>Explanation:</strong> s can be split into [&ldquo;05&rdquo;, &ldquo;004&rdquo;, &ldquo;3&rdquo;] with numerical values [5,4,3]. The values are in descending order with adjacent values differing by 1.</p> <p><strong>Example 3:</strong></p> <p><strong>Input:</strong> s = &ldquo;9080701&rdquo;</p> <p><strong>Output:</strong> false</p> <p><strong>Explanation:</strong> There is no valid way to split s.</p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= s.length <= 20</code></li> <li><code>s</code> only consists of digits.</li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • splitString

      public boolean splitString(String s)