785-Is-Graph-Bipartite
Sat 17 May 2025
https://leetcode.com/problems/is-graph-bipartite
import pyutil as pyu
pyu.get_local_pyinfo()
print(pyu.ps2("python-dotenv"))
from typing import List
from enum import Enum
class Color(Enum):
kWhite = 0
kRed = 1
kGreen = 2
class Solution:
def isBipartite(self, graph: List[List[int]]) -> bool:
colors = [Color.kWhite] * len(graph)
for i in range(len(graph)):
# Already colored, do nothing
if colors[i] != Color.kWhite:
continue
# colors[i] == Color.kWhite
colors[i] = Color.kRed # Always paint w/ Color.kRed
# BFS
q = deque([i])
while q:
u = q.popleft()
for v in graph[u]:
if colors[v] == colors[u]:
return False
if colors[v] == Color.kWhite:
colors[v] = Color.kRed if colors[u] == Color.kGreen else Color.kGreen
q.append(v)
return True
new Solution().isBipartite()
Score: 5
Category: leetcode