Untitled

 avatar
unknown
plain_text
7 days ago
1.6 kB
1
Indexable
class Solution:
    def garbageCollection(self, garbage: List[str], travel: List[int]) -> int:
        n = len(garbage)
        paper_garbage, glass_garbage, metal_garbage = None, None, None
        for i in range(n-1, -1, -1):
            if paper_garbage is None and 'P' in garbage[i]:
                paper_garbage = garbage[i].count('P')
            elif paper_garbage is not None and 'P' in garbage[i]:
                paper_garbage += garbage[i].count('P')
            if paper_garbage is not None and i is not 0:
                paper_garbage += travel[i-1]

        for i in range(n-1, -1, -1):
            if glass_garbage is None and 'G' in garbage[i]:
                glass_garbage = garbage[i].count('G')
            elif glass_garbage is not None and 'G' in garbage[i]:
                glass_garbage += garbage[i].count('G')
            if glass_garbage is not None and i is not 0:
                glass_garbage += travel[i-1]

        for i in range(n-1, -1, -1):
            if metal_garbage is None and 'M' in garbage[i]:
                metal_garbage = garbage[i].count('M')
            elif metal_garbage is not None and 'M' in garbage[i]:
                metal_garbage += garbage[i].count('M')
            if metal_garbage is not None and i is not 0:
                metal_garbage += travel[i-1]

        total_time = 0
        if paper_garbage is not None:
            total_time += paper_garbage
        if glass_garbage is not None:
            total_time += glass_garbage
        if metal_garbage is not None:
            total_time += metal_garbage
        return total_time
        
Leave a Comment