中等
给你一个由小写英文字母组成的字符串 s。
在一次操作中,你可以选择 s 的任意 (但 不能 是整个字符串),并将其按 非降序字母顺序 进行 排序。
返回使 s 按 非降序 排列所需的 最小 操作次数。如果无法做到,则返回 -1。
示例 1:
输入: s = "dog"
输出: 1
解释:
- 将子字符串
"og"排序为"go"。 - 现在,
s = "dgo",已按升序排列。因此,答案是 1。
示例 2:
输入: s = "card"
输出: 2
解释:
- 将子字符串
"car"排序为"acr",得到s = "acrd"。 - 将子字符串
"rd"排序为"dr",得到s = "acdr",已按升序排列。因此,答案是 2。
示例 3:
输入: s = "gf"
输出: -1
解释:
- 在给定提示下,无法对
s进行排序。因此,答案是 -1。
提示:
1 <= s.length <= 105s仅由小写英文字母组成。