## Construct String With Repeat Limit solution leetcode

You are given a string `s`

and an integer `repeatLimit`

. Construct a new string `repeatLimitedString`

using the characters of `s`

such that no letter appears **more than** `repeatLimit`

times **in a row**. You do **not** have to use all characters from `s`

.

Return *the lexicographically largest *

`repeatLimitedString`

*possible*.

A string `a`

is **lexicographically larger** than a string `b`

if in the first position where `a`

and `b`

differ, string `a`

has a letter that appears later in the alphabet than the corresponding letter in `b`

. If the first `min(a.length, b.length)`

characters do not differ, then the longer string is the lexicographically larger one.

# Construct String With Repeat Limit solution leetcode

Input:s = "cczazcc", repeatLimit = 3Output:"zzcccac"Explanation:We use all of the characters from s to construct the repeatLimitedString "zzcccac". The letter 'a' appears at most 1 time in a row. The letter 'c' appears at most 3 times in a row. The letter 'z' appears at most 2 times in a row. Hence, no letter appears more than repeatLimit times in a row and the string is a valid repeatLimitedString. The string is the lexicographically largest repeatLimitedString possible so we return "zzcccac". Note that the string "zzcccca" is lexicographically larger but the letter 'c' appears more than 3 times in a row, so it is not a valid repeatLimitedString.

## Construct String With Repeat Limit solution leetcode

Input:s = "aababab", repeatLimit = 2Output:"bbabaa"Explanation:We use only some of the characters from s to construct the repeatLimitedString "bbabaa". The letter 'a' appears at most 2 times in a row. The letter 'b' appears at most 2 times in a row. Hence, no letter appears more than repeatLimit times in a row and the string is a valid repeatLimitedString. The string is the lexicographically largest repeatLimitedString possible so we return "bbabaa". Note that the string "bbabaaa" is lexicographically larger but the letter 'a' appears more than 2 times in a row, so it is not a valid repeatLimitedString.

You are given an `m x n`

integer matrix `grid`

where each cell is either `0`

(empty) or `1`

(obstacle). You can move up, down, left, or right from and to an empty cell in **one step**.

Return *the minimum number of steps to walk from the upper left corner *

`(0, 0)`

*to the lower right corner*

`(m - 1, n - 1)`

*given that you can eliminate*

**at most**`k`

*obstacles*. If it is not possible to find such walk return

`-1.`

**Example 1:**

Input:grid = [[0,0,0],[1,1,0],[0,0,0],[0,1,1],[0,0,0]], k = 1Output:6Explanation:The shortest path without eliminating any obstacle is 10. The shortest path with one obstacle elimination at position (3,2) is 6. Such path is (0,0) -> (0,1) -> (0,2) -> (1,2) -> (2,2) ->(3,2)-> (4,2).

## Construct String With Repeat Limit solution leetcode

Input:grid = [[0,1,1],[1,1,1],[1,0,0]], k = 1Output:-1Explanation:We need to eliminate at least two obstacles to find such a walk.

**Constraints:**

`m == grid.length`

`n == grid[i].length`

`1 <= m, n <= 40`

`1 <= k <= m * n`

`grid[i][j]`

is either`0`

**or**`1`

.`grid[0][0] == grid[m - 1][n - 1] == 0`