하위 도메인 방문 횟수

2423 단어 theabbieleetcodedsa
웹 사이트 도메인"discuss.leetcode.com"은 다양한 하위 도메인으로 구성됩니다. 최상위 수준에는 "com" 가 있고, 다음 수준에는 "leetcode.com" 가 있고, 가장 낮은 수준에는 "discuss.leetcode.com" 가 있습니다. "discuss.leetcode.com" 와 같은 도메인을 방문할 때 암시적으로 상위 도메인 "leetcode.com""com"도 방문합니다.

카운트 쌍 도메인은 "rep d1.d2.d3" 또는 "rep d1.d2" 두 가지 형식 중 하나를 갖는 도메인입니다. 여기서 rep는 도메인 방문 횟수이고 d1.d2.d3는 도메인 자체입니다.
  • 예를 들어, "9001 discuss.leetcode.com"discuss.leetcode.com9001번 방문되었음을 나타내는 카운트 쌍 도메인입니다.

  • 개수 쌍 도메인의 배열cpdomains이 주어지면 입력에서 각 하위 도메인의 개수 쌍 도메인 배열을 반환합니다. 어떤 순서로든 답변을 반환할 수 있습니다.

    예 1:

    입력: cpdomains = ["9001 토론.leetcode.com"]
    출력: ["9001 leetcode.com","9001 토론.leetcode.com","9001 com"]
    설명: "discuss.leetcode.com"이라는 하나의 웹사이트 도메인만 있습니다.
    위에서 설명한 것처럼 하위 도메인 "leetcode.com"및 "com"도 방문합니다. 따라서 그들은 모두 9001번 방문하게 됩니다.

    예 2:

    입력: cpdomains = ["900 google.mail.com", "50 yahoo.com", "1 intel.mail.com", "5 wiki.org"]
    출력: ["901 mail.com","50 yahoo.com","900 google.mail.com","5 wiki.org","5 org","1 intel.mail.com","951 com "]
    설명: "google.mail.com"을 900번, "yahoo.com"을 50번, "intel.mail.com"을 한 번, "wiki.org"를 5번 방문합니다.
    하위 도메인의 경우 "mail.com"을 900 + 1 = 901번, "com"을 900 + 50 + 1 = 951번, "org"를 5번 방문합니다.

    제약:
  • 1 <= cpdomain.length <= 100
  • 1 <= cpdomain[i].length <= 100
  • cpdomain[i]"repi d1i.d2i.d3i" 형식 또는 "repi d1i.d2i" 형식을 따릅니다.
  • repi[1, 104] 범위의 정수입니다.
  • d1i , d2id3i 는 영문 소문자로 구성됩니다.

  • 해결책:

    class Solution:
        def subdomainVisits(self, cpdomains: List[str]) -> List[str]:
            ctr = {}
            for val in cpdomains:
                rep, domain = val.split(" ")
                rep = int(rep)
                doms = domain.split(".")
                n = len(doms)
                for i in range(n):
                    curr = ".".join(doms[i:])
                    ctr[curr] = ctr.get(curr, 0) + rep
            return ["{} {}".format(v, k) for k, v in ctr.items()]
    

    좋은 웹페이지 즐겨찾기