두 문자열이 거의 같은지 확인

1927 단어 theabbieleetcodedsa
word1word2 사이의 'a' 에서 'z' 사이의 각 문자의 빈도 차이가 최대 word1 인 경우 두 문자열 word23 은 거의 동일한 것으로 간주됩니다.

두 개의 문자열 word1word2 , 길이가 각각 n 인 경우 trueword1 이 거의 동일하면 word2 을 반환하고 그렇지 않으면 false 을 반환합니다.

문자 x의 빈도는 문자열에서 나타나는 횟수입니다.

예 1:

입력: word1 = "aaaa", word2 = "bccb"
출력: 거짓
설명: "aaaa"에는 4개의 'a가 있지만 "bccb"에는 0개의 'a가 있습니다.
차이는 4이며 허용된 3보다 큽니다.

예 2:

입력: word1 = "abcdeef", word2 = "abaaacc"
출력: 참
설명: word1과 word2의 각 문자의 빈도 차이는 최대 3입니다.
  • 'a'는 word1에 1번, word2에 4번 나타납니다. 차이는 3입니다.
  • 'b'는 word1에 1번, word2에 1번 나타납니다. 차이는 0입니다.
  • 'c'는 word1에 1번, word2에 2번 나타납니다. 차이는 1입니다.
  • 'd'는 word1에 1번, word2에 0번 나타납니다. 차이는 1입니다.
  • 'e'는 word1에 2번, word2에 0번 나타납니다. 차이는 2입니다.
  • 'f'는 word1에서 1번, word2에서 0번 나타납니다. 차이는 1입니다.

  • 예 3:

    입력: word1 = "cccddabba", word2 = "babababab"
    출력: 참
    설명: word1과 word2의 각 문자의 빈도 차이는 최대 3입니다.
  • 'a'는 word1에 2번, word2에 4번 나타납니다. 차이는 2입니다.
  • 'b'는 word1에 2번, word2에 5번 나타납니다. 차이는 3입니다.
  • 'c'는 word1에 3번, word2에 0번 나타납니다. 차이는 3입니다.
  • 'd'는 word1에 2번, word2에 0번 나타납니다. 차이는 2입니다.

  • 제약:
  • n == word1.length == word2.length
  • 1 <= n <= 100
  • word1word2은 영문 소문자로만 구성됩니다.

  • 해결책:

    from collections import Counter
    
    class Solution:
        def checkAlmostEquivalent(self, word1: str, word2: str) -> bool:
            ctr1 = Counter(word1)
            ctr2 = Counter(word2)
            for c in "abcdefghijklmnopqrstuvwxyz":
                if abs(ctr1[c] - ctr2[c]) > 3:
                    return False
            return True
    

    좋은 웹페이지 즐겨찾기