A string is **good** if there are no repeated characters.

Given a string `s`​​​​​, return _the number of **good substrings** of length **three** in_ `s`​​​​​​.

Note that if there are multiple occurrences of the same substring, every occurrence should be counted.

A **substring** is a contiguous sequence of characters in a string.

**Example 1:**

**Input:** s =  "xyzzaz "
**Output:** 1
**Explanation:** There are 4 substrings of size 3:  "xyz ",  "yzz ",  "zza ", and  "zaz ". 
The only good substring of length 3 is  "xyz ".

**Example 2:**

**Input:** s =  "aababcabc "
**Output:** 4
**Explanation:** There are 7 substrings of size 3:  "aab ",  "aba ",  "bab ",  "abc ",  "bca ",  "cab ", and  "abc ".
The good substrings are  "abc ",  "bca ",  "cab ", and  "abc ".

**Constraints:**

*   `1 <= s.length <= 100`
*   `s`​​​​​​ consists of lowercase English letters.


from collections import deque


def highest_island(is_water):
    m, n = len(is_water), len(is_water[0])
    height = [[-1] * n for _ in range(m)]
    q = deque()

    for i in range(m):
        for j in range(n):
            if is_water[i][j] == 1:
                height[i][j] = 0
                q.append((i, j))

    dx = [-1, 0, 1, 0]
    dy = [0, 1, 0, -1]

    while q:
        x, y = q.popleft()

        for i in range(4):
            newX = x + dx[i]
            newY = y + dy[i]

            if 0 <= newX < m and 0 <= newY < n and height[newX][newY] == -1:
                height[newX][newY] = height[x][y] + 1
                q.append((newX, newY))

    return height
