前往
大廳
主題

LeetCode - 2068. Check Whether Two Strings are Almost Equivalent 解題心得

Not In My Back Yard | 2022-05-05 00:00:05 | 巴幣 10 | 人氣 126

題目連結:


題目意譯:
兩個字串 word1 和 word2 將被視為幾乎相等的,如果兩者每種字母 'a' 到 'z' 的頻率最大只差 3。

給定兩字串 word1 和 word2,每個長度皆為 n,回傳真(True)如果 word1 和 word2 幾乎相等;反之,回傳假(False)。

一個字母 x 的頻率為其出現於字串中的次數。

限制:
n == word1.length == word2.length
1 ≦ n ≦ 100
word1 和 word2 只由小寫英文字母組成。



範例測資:
範例 1:
輸入: word1 = "aaaa", word2 = "bccb"
輸出: false
解釋: "aaaa" 中有 4 個 'a',但是 "bccb" 中只有 0 個 'a'。
其差值為 4,而這已經超過了允許值 3。

範例 2:
輸入: word1 = "abcdeef", word2 = "abaaacc"
輸出: true
解釋: 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"
輸出: true
解釋: 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。


解題思維:
就是單純地統計兩者各自 26 種英文字母的出現次數,然後比對兩者每種的次數之差值是否有超過 3 即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作