Goldman Sachs OA 2021 Engineering Full-time
Anonymous User
930
  1. https://leetcode.com/problems/last-substring-in-lexicographical-order/
  2. https://leetcode.com/problems/friend-circles/submissions/
1
 def lastSubstring(s):
		largest_character = max(set(s))
        result = ''
        
        for i, char in enumerate(s):
            
            if char==largest_character:
                result = max(result,s[i:])
                
        return result
		
2
 def findCircleNum(M):
        
        if not M: return 0
        
        n = size = len(M)
        dic = {i:i for i in range(n)}
        rank = {i:0 for i in range(n)}
        
        def find(node):
            
            if node!=dic[node]:
                dic[node] = find(dic[node])
            return dic[node]
        
        for r in range(n):
            for c in range(n):
                if r!=c and M[r][c]==1:
                    x = find(r)
                    y = find(c)
    
                    if x!=y:
                        if rank[x]>rank[y]:
                            dic[y] = x
                        elif rank[x]<rank[y]:
                            dic[x] = y
                        else:
                            dic[y] = x
                            rank[x]+=1
                        size-=1
              
        return size
        
Comments (1)