LeetCode 893 特殊等價字串組

2021-09-24 21:31:11 字數 1379 閱讀 7650

題目描述:

你將得到乙個字串陣列 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"]

演算法思想:此題比較難理解,題目是這樣的。給定乙個字串陣列,逐個判定每個字串是否跟其他字串屬於同一組。依據是:將每個字串劃分成奇數部分和偶數部分(按照下標),如果奇數部分和偶數部分在各個對應的位置上數值相同,則判定兩個字串屬於同一組。具體如下圖所示:

int hashtable[52];//雜湊陣列,用於記錄偶數和奇數分組後對應字元的個數

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 中的任何字串都不是特殊等價的...