839 相似字串組

2021-10-18 13:15:58 字數 1398 閱讀 9702

難度困難93

如果交換字串x中的兩個不同位置的字母,使得它和字串y相等,那麼稱xy兩個字串相似。如果這兩個字串本身是相等的,那它們也是相似的。

例如,"tars""rats"是相似的 (交換02的位置);"rats""arts"也是相似的,但是"star"不與"tars""rats",或"arts"相似。

總之,它們通過相似性形成了兩個關聯組:。注意,"tars""arts"是在同一組中,即使它們並不相似。形式上,對每個組而言,要確定乙個單詞在組中,只需要這個詞和該組中至少乙個單詞相似。

給你乙個字串列表strs。列表中的每個字串都是strs中其它所有字串的乙個字母異位詞。請問strs中有多少個相似字串組?

示例 1:

輸入:strs = ["tars","rats","arts","star"]輸出:2
示例 2:

輸入:strs = ["omv","ovm"]輸出:1

備註:

字母異位詞(anagram),一種把某個字串的字母的位置(順序)加以改換所形成的新詞。

題目分析:這個題目主要在於分析題目,需要知道的是相似字串組的數量,而不是相似字串的數量。因此是求出最後各個集合的數量,很容易想到要採用並查集的方法,對所有的兩兩組合進行判斷是否相似,進而合併。

class solution 

} int find_set(int x)

bool union(vector& strs, int x, int y)

}if (dif == 0 || dif == 2)

return 1;

} return 0;

}public:

int numsimilargroups(vector& strs)

} setres;

for (int i = 0; i < strs.size(); ++i)

return res.size();

}};

839 相似字串組

839.相似字串組 如果交換字串x中的兩個不同位置的字母,使得它和字串y相等,那麼稱x和y兩個字串相似。如果這兩個字串本身是相等的,那它們也是相似的。例如,tars 和 rats 是相似的 交換0與2的位置 rats 和 arts 也是相似的,但是 star 不與 tars rats 或 arts ...

839 相似字串組

如果交換字串 x 中的兩個不同位置的字母,使得它和字串 y 相等,那麼稱 x 和 y 兩個字串相似。如果這兩個字串本身是相等的,那它們也是相似的。例如,tars 和 rats 是相似的 交換 0 與 2 的位置 rats 和 arts 也是相似的,但是 star 不與 tars rats 或 art...

839 相似字串組

如果交換字串x中的兩個不同位置的字母,使得它和字串y相等,那麼稱x和y兩個字串相似。如果這兩個字串本身是相等的,那它們也是相似的。例如,tars 和 rats 是相似的 交換0與2的位置 rats 和 arts 也是相似的,但是 star 不與 tars rats 或 arts 相似。總之,它們通過...