你將得到乙個字串陣列 a。
如果經過任意次數的移動,s == t,那麼兩個字串 s 和 t 是特殊等價的。
一次移動包括選擇兩個索引 i 和 j,且 i % 2 == j % 2,交換 s[j] 和 s [i]。
現在規定,a 中的特殊等價字串組是 a 的非空子集 s,這樣不在 s 中的任何字串與 s 中的任何字串都不是特殊等價的。
返回 a 中特殊等價字串組的數量。
示例 1:
輸入:["a","b","c","a","c","c"]
輸出:3
解釋:3 組 ["a","a"],["b"],["c","c","c"]
示例 2:
輸入:["aa","bb","ab","ba"]
輸出:4
解釋:4 組 ["aa"],["bb"],["ab"],["ba"]
示例 3:
輸入:["abc","acb","bac","bca","cab","cba"]
輸出:3
解釋:3 組 ["abc","cba"],["acb","bca"],["bac","cab"]
示例 4:
輸入:["abcd","cdab","adcb","cbad"]
輸出:1
解釋:1 組 ["abcd","cdab","adcb","cbad"]
思路:1.對於每個string,都對應建立兩個字串(odd用來記錄奇數部分的字元,even記錄偶數部分的字元)
2.odd和even排序後相加,如果string1和string2是特殊等價的那麼相加後的字串必定相同
3.建立set儲存每個不同的結果,返回set的size
class solution
if(even.size() > 1)
sort(even.begin(), even.end());
if(odd.size() > 1)
sort(odd.begin(), odd.end());
s.insert(even + odd);
}return s.size();}};
leetcode 893 特殊等價字串組
題目分析 這道題的題目真的難以理解?如果經過任意次數的移動,s t,那麼兩個字串s和t是特殊等價的。i.e.找所有字串,所含字母一樣的字串。一次移動包括選擇兩個索引i和j,且i 2 j 2,並且交換s j 和s i i.e.找其中奇數字一樣的字串 或者偶數字 class solution objec...
leetcode 893 特殊等價字串組
題目 你將得到乙個字串陣列 a。如果經過任意次數的移動,s t,那麼兩個字串 s 和 t 是特殊等價的。一次移動包括選擇兩個索引 i 和 j,且 i 2 j 2,交換 s j 和 s i 現在規定,a 中的特殊等價字串組是 a 的非空子集 s,這樣不在 s 中的任何字串與 s 中的任何字串都不是特殊...
LeetCode 893 特殊等價字串組
題目描述 你將得到乙個字串陣列 a。如果經過任意次數的移動,s t,那麼兩個字串 s 和 t 是特殊等價的。一次移動包括選擇兩個索引 i 和 j,且 i 2 j 2,交換 s j 和 s i 現在規定,a 中的特殊等價字串組是 a 的非空子集 s,這樣不在 s 中的任何字串與 s 中的任何字串都不是...