문자 x와 y가 포함된 소문자 문자열 s가 있다고 가정합니다. 이제 단일 x를 y로 또는 그 반대로 변경하는 작업을 고려하십시오. 모든 x가 모든 y보다 먼저 오도록 설정하기 위해 해당 작업을 수행하는 데 필요한 최소 횟수를 찾아야 합니다.
따라서 입력이 s ="yxyyyyxyxx"와 같으면 출력은 4가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
y_left :=0
-
x_right :=s에 있는 "x"의 수, res :=s에 있는 "x"의 수
-
s의 각 항목에 대해 수행
-
항목이 "x"와 같으면
-
x_right :=x_right − 1
-
-
그렇지 않으면
-
y_left :=y_left + 1
-
-
res :=최소 res 및 (y_left + x_right)
-
-
반환 해상도
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, s): y_left = 0 x_right = res = s.count("x") for item in s: if item == "x": x_right -= 1 else: y_left += 1 res = min(res, y_left + x_right) return res ob = Solution() s = "yxyyyyxyxx" print(ob.solve(s))
입력
"yxyyyyxyxx"
출력
4