給出兩個字符串,問其中一個字符串使用以下兩種操作(次數不限),是否能轉換為另一個
1. 交換兩個字符
2. 把其中一個字符串中的所有a字符全部換成b,同時b字符全部同時換成a
總結下來只要判斷
1. 兩個字符串中出現的字符種類完全一致(用python的set實現)
2. 兩個字符串中每個字符出現次數的count排序后完全一致(參考Discussion學到的python的Counter)
所以有以下兩種寫法(用兩次Counter快很多):
1 #1657
2 #Runtime: 1271 ms
3 #Memory Usage: 15.3 MB
4
5 class Solution(object):
6 def closeStrings(self, word1, word2):
7 """
8 :type word1: str
9 :type word2: str
10 :rtype: bool
11 """
12 return sorted(Counter(word1).values()) == sorted(Counter(word2).values()) and set(word1) == set(word2)
1 #1657
2 #Runtime: 495 ms
3 #Memory Usage: 15.4 MB
4
5 class Solution(object):
6 def closeStrings(self, word1, word2):
7 """
8 :type word1: str
9 :type word2: str
10 :rtype: bool
11 """
12 return Counter(Counter(word1).values()) == Counter(Counter(word2).values()) and set(word1) == set(word2)