Problem · String

Find Minimum Operations

Learn this problem
HardIBM logoIBMOA
See IBM hiring insights

Problem statement

A scheduler manages multiple processes with priorities represented by the letters a, b, and c. Its goal is to optimize the schedule to achieve a specific sequence.

The operations available to the scheduler are as follows:

  • Choose a process with priority a, b, or c.
  • Insert the chosen process into the scheduling queue at any position.
  • Determine the minimum number of scheduling operations required to ensure that the scheduling queue follows the repeating pattern "abc".

    Function

    findMinOperations(s: String) → int

    Complete the function findMinOperations in the editor below.

    findMinOperations takes the following parameters:

    • string s: the scheduling queue

    Returns

    int: the minimum number of operations required to make the queue a concatenation of 'abc' several times

    Constraints

    • 1 ≤ |s| ≤ 10^5
    • s consists only of characters 'a', 'b', and 'c'.

    Examples

    Example 1

    s = "abb"return = 3

    Transform the queue to abcabc by inserting two letters c and one letter a. The string "abcabc" is the concatenation of "abc" two times.

    The minimum number of scheduling operations required is 3.

    Example 2

    s = "aa"return = 4

    Insert 'b' and 'c' after the first and second 'a' to transform the string to abcabc.

    Example 3

    s = "ac"return = 1

    Insert 'b' between 'a' and 'c' to transform the string to abc.

    More IBM problems

    drafts saved locally
    public int findMinOperations(String s) {
      // write your code here
    }
    
    s"abb"
    expected3
    checking account