ZhongKuo0228 / study

0 stars 0 forks source link

1657. Determine if Two Strings Are Close #80

Open fockspaces opened 10 months ago

fockspaces commented 10 months ago
  1. 長度、set 不同肯定沒戲
  2. 能夠透過 operation 轉換相同字串的條件:要有相同的 freq 組合(dict.values 排序)
class Solution:
    def closeStrings(self, word1: str, word2: str) -> bool:
        if len(word1) != len(word2) or set(word1) != set(word2):
            return False
        freq_w1, freq_w2 = {}, {}
        for w in word1:
            freq_w1[w] = freq_w1.get(w, 0) + 1
        for w in word2:
            freq_w2[w] = freq_w2.get(w, 0) + 1
        occur_w1, occur_w2 = freq_w1.values(), freq_w2.values()
        return sorted(occur_w1) == sorted(occur_w2) 
fockspaces commented 10 months ago

增加可讀性,將 counter 另外實作

class Solution:
    def closeStrings(self, word1: str, word2: str) -> bool:
        if len(word1) != len(word2) or set(word1) != set(word2):
            return False

        def count_freq(words):
            freq_map = {}
            for w in words:
                freq_map[w] = freq_map.get(w, 0) + 1
            return freq_map

        freq_w1, freq_w2 = count_freq(word1), count_freq(word2)
        return sorted(freq_w1.values()) == sorted(freq_w2.values())