Написано: 23.03.2023

D. Минимальное расстояние между символами

Задание было предложено на тесте в комании Яндекс.

Задание.

Дана строка.

Нужно определить минимальное расстояние между символами X и Y.

Если символов нет, нужно вернуть 0.

Пример 1.

Входные данные: s = “RTXXOOYOX”

Результат: 2

Решение.

class Solution {
public:
    int minDistance(string s) {
        int n = s.length(), xPos = -1, yPos = -1, dist = INT_MAX;

        for(int i = 0; i < n; i++) {
            if(s[i] == 'X') {
                xPos = i;
            } else if (s[i] == 'Y') {
                yPos = i;
            }

            if(xPos != -1 && yPos != -1) {
                dist = min(dist, abs(xPos - yPos));
            }
        }

        return dist == INT_MAX ? 0 : dist;
    }
};