반지와 막대
n
고리가 있으며 각 고리는 빨간색, 녹색 또는 파란색입니다. 링은 0
에서 9
까지 레이블이 지정된 10개의 막대에 걸쳐 분포됩니다.로드에 배치된 링
rings
을 설명하는 길이2n
의 문자열n
이 제공됩니다. rings
의 두 문자마다 각 링을 설명하는 데 사용되는 색상-위치 쌍을 형성합니다.ith
쌍의 첫 번째 문자는 ith
링의 색상을 나타냅니다( 'R'
, 'G'
, 'B'
). ith
쌍의 두 번째 문자는 ith
링이 있는 막대를 나타냅니다( '0'
~ '9'
). 예를 들어,
"R3G2B1"
는 n == 3
고리를 나타냅니다. 빨간색 고리는 3으로 표시된 막대에, 녹색 고리는 2로 표시된 막대에, 파란색 고리는 1로 표시된 막대에 배치됩니다.세 가지 색상의 고리가 모두 있는 막대의 수를 반환합니다.
예 1:
입력: 링 = "B0B6G0R6R0R6G9"
출력: 1
설명:
따라서 세 가지 색상이 모두 포함된 막대의 수는 1입니다.
예 2:
입력: 링 = "B0R0G0R9R0B0G0"
출력: 1
설명:
따라서 세 가지 색상이 모두 포함된 막대의 수는 1입니다.
예 3:
입력: 링 = "G4"
출력: 0
설명:
반지는 1개만 줍니다. 따라서 세 가지 색상이 모두 있는 막대는 없습니다.
제약:
rings.length == 2 * n
1 <= n <= 100
rings[i]
여기서 i
는 'R'
, 'G'
또는 'B'
(인덱스 0)입니다. rings[i]
여기서 i
가 홀수인 것은 '0'
에서 '9'
까지의 숫자입니다(인덱스 0). 해결책:
class Solution:
def countPoints(self, rings: str) -> int:
n = len(rings)
rods = [set(), set(), set()]
for i in range(0, n, 2):
if rings[i] == 'R':
rods[0].add(int(rings[i + 1]))
if rings[i] == 'G':
rods[1].add(int(rings[i + 1]))
if rings[i] == 'B':
rods[2].add(int(rings[i + 1]))
return len(set.intersection(*rods))
Reference
이 문제에 관하여(반지와 막대), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/rings-and-rods-522f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)