You are given a string s consisting of lowercase English letters.
In one operation, you can select any substring of s that is not the entire string and sort it in non-descending alphabetical order.
Return the minimum number of operations required to make s sorted in non-descending order. If it is not possible, return -1.
Example 1:
Input: s = "dog"
Output: 1
Explanation:
"og" to "go".s = "dgo", which is sorted in ascending order. Thus, the answer is 1.Example 2:
Input: s = "card"
Output: 2
Explanation:
"car" to "acr", so s = "acrd"."rd" to "dr", making s = "acdr", which is sorted in ascending order. Thus, the answer is 2.Example 3:
Input: s = "gf"
Output: -1
Explanation:
s under the given constraints. Thus, the answer is -1.Constraints:
1 <= s.length <= 105s consists of only lowercase English letters.s is already sorted, answer is 0.mn be the minimum char and mx be the maximum char; if mn appears at the beginning (not whole string) or mx appears at the end (not whole string), answer is 1.s cannot be transformed into a sorted string, return -1.mn exists in any proper prefix and no mx exists in any proper suffix, answer is 3; otherwise answer is 2"dog"
"card"
"gf"