LeetCode in Kotlin

3228. Maximum Number of Operations to Move Ones to the End

Medium

You are given a binary string s.

You can perform the following operation on the string any number of times:

Return the maximum number of operations that you can perform.

Example 1:

Input: s = “1001101”

Output: 4

Explanation:

We can perform the following operations:

Example 2:

Input: s = “00111”

Output: 0

Constraints:

Solution

class Solution {
    fun maxOperations(s: String): Int {
        val arr = s.toCharArray()
        var result = 0
        var ones = 0
        val n = arr.size
        for (i in 0 until n) {
            ones += arr[i].code - '0'.code
            if (i > 0 && arr[i] < arr[i - 1]) {
                result += ones
            }
        }
        return result
    }
}