2645. Minimum Additions to Make Valid String

Difficulty:
Related Topics:
Similar Questions:

Problem

Given a string word to which you can insert letters "a", "b" or "c" anywhere and any number of times, return **the minimum number of letters that must be inserted so that word becomes **valid.

A string is called **valid **if it can be formed by concatenating the string "abc" several times.

Example 1:

Input: word = "b"
Output: 2
Explanation: Insert the letter "a" right before "b", and the letter "c" right next to "a" to obtain the valid string "abc".

Example 2:

Input: word = "aaa"
Output: 6
Explanation: Insert letters "b" and "c" next to each "a" to obtain the valid string "abcabcabc".

Example 3:

Input: word = "abc"
Output: 0
Explanation: word is already valid. No modifications are needed.

Constraints:

Solution (Java)

class Solution {
    public int addMinimum(String word) {
        int k = 0, prev = 'z', n = word.length();
        for (int i = 0; i < n; ++i) {
            k += word.charAt(i) <= prev ? 1 : 0;
            prev = word.charAt(i);
        }
        return k * 3 - n;
    }
}

Explain:

nope.

Complexity: