회사 이름

2349 단어 theabbieleetcodedsa
회사 이름을 지정하는 과정에서 사용할 이름 목록을 나타내는 문자열 배열ideas이 제공됩니다. 회사 이름을 짓는 과정은 다음과 같습니다.
  • ideas에서 2개의 다른 이름을 선택하고 ideaAideaB로 지정합니다.
  • ideaAideaB의 첫 글자를 서로 바꿉니다.
  • 두 새 이름이 원본ideas에서 발견되지 않으면 이름 ideaA ideaB(공백으로 구분된 ideaAideaB 의 연결)이 유효한 회사 이름입니다.
  • 그렇지 않으면 유효한 이름이 아닙니다.

  • 회사에 대한 고유한 유효한 이름의 수를 반환합니다.

    예 1:

    입력: 아이디어 = ["커피","도넛","시간","토피"]
    출력: 6
    설명: 다음 선택이 유효합니다.
  • ("coffee", "donuts"): 생성된 회사 이름은 "doffee conuts"입니다.
  • ("donuts", "coffee"): 생성된 회사 이름은 "conuts doffee"입니다.
  • ("donuts", "time"): 생성된 회사 이름은 "tonuts dime"입니다.
  • ("donuts", "toffee"): 생성된 회사 이름은 "tonuts doffee"입니다.
  • ("time", "donuts"): 생성된 회사 이름은 "dime tonuts"입니다.
  • ("toffee", "donuts"): 생성된 회사 이름은 "doffee tonuts"입니다.
    따라서 총 6개의 고유한 회사 이름이 있습니다.

  • 다음은 잘못된 선택의 몇 가지 예입니다.
  • ("coffee", "time"): 교체 후 형성된 "toffee"라는 이름이 원래 배열에 이미 존재합니다.
  • ("time", "toffee"): 교체 후에도 두 이름이 여전히 동일하며 원래 배열에 존재합니다.
  • ("coffee", "toffee"): 교환 후 형성된 두 이름 모두 원래 배열에 이미 존재합니다.

  • 예 2:

    입력: 아이디어 = ["부족","뒤로"]
    출력: 0
    설명: 유효한 선택이 없습니다. 따라서 0이 반환됩니다.

    제약:
  • 2 <= ideas.length <= 5 * 104
  • 1 <= ideas[i].length <= 10
  • ideas[i] 영문 소문자로 구성되어 있습니다.
  • ideas의 모든 문자열은 고유합니다.

  • 해결책:

    from collections import Counter
    
    class Solution:
        def distinctNames(self, ideas: List[str]) -> int:
            names = set(ideas)
            groups = [[] for _ in range(26)]
            groupctr = Counter()
            for idea in ideas:
                groups[ord(idea[0]) - ord('a')].append(idea)
            for l in 'abcdefghijklmnopqrstuvwxyz':
                for c in 'abcdefghijklmnopqrstuvwxyz':
                    for pair in groups[ord(l) - ord('a')]:
                        if (c + pair[1:]) not in names:
                            groupctr[(l, c)] += 1
            ctr = 0
            for idea in ideas:
                for c in 'abcdefghijklmnopqrstuvwxyz':
                    if (c + idea[1:]) not in names:
                        ctr += groupctr[(c, idea[0])]
            return ctr
    

    좋은 웹페이지 즐겨찾기