1830. Minimum Number of Operations to Make String Sorted
https://leetcode.com/problems/minimum-number-of-operations-to-make-string-sorted
Description
You are given a string s (0-indexed). You are asked to perform the following operation on s until you get a sorted string:
Find the largest index
isuch that1 <= i < s.lengthands[i] < s[i - 1].Find the largest index
jsuch thati <= j < s.lengthands[k] < s[i - 1]for all the possible values ofkin the range[i, j]inclusive.Swap the two characters at indices
i - 1 andj.Reverse the suffix starting at index
i.
Return the number of operations needed to make the string sorted. Since the answer can be too large, return it modulo 109 + 7.
Example 1:
**Input:** s = "cba"
**Output:** 5
**Explanation:** The simulation goes as follows:
Operation 1: i=2, j=2. Swap s[1] and s[2] to get s="cab", then reverse the suffix starting at 2. Now, s="cab".
Operation 2: i=1, j=2. Swap s[0] and s[2] to get s="bac", then reverse the suffix starting at 1. Now, s="bca".
Operation 3: i=2, j=2. Swap s[1] and s[2] to get s="bac", then reverse the suffix starting at 2. Now, s="bac".
Operation 4: i=1, j=1. Swap s[0] and s[1] to get s="abc", then reverse the suffix starting at 1. Now, s="acb".
Operation 5: i=2, j=2. Swap s[1] and s[2] to get s="abc", then reverse the suffix starting at 2. Now, s="abc".Example 2:
Example 3:
Example 4:
Constraints:
1 <= s.length <= 3000s consists only of lowercase English letters.
ac
Last updated
Was this helpful?