无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

2186 使兩字符串互為字母異位詞的最少步驟數(shù)

2023-02-21 15:18 作者:目標(biāo)力扣Knight  | 我要投稿

2186 使兩字符串互為字母異位詞的最少步驟數(shù)

方法一:哈希 + 成員判斷【集合】

分別對(duì)兩個(gè)字符串做詞頻統(tǒng)計(jì),若字符在任意一個(gè)字符串出現(xiàn),則累加其詞頻,如果同時(shí)在兩個(gè)字符串中出現(xiàn),則累加其差值。

Python版本

C++版本


復(fù)雜度分析

  • 時(shí)間復(fù)雜度:O(N)。 性能開(kāi)銷(xiāo)主要集中在遍歷 s 串 和 t 串統(tǒng)計(jì)詞頻中,最壞情況為兩個(gè)串的長(zhǎng)度之和 2 * 2 * 10 ^ 5, 兩次遍歷詞頻數(shù)組,累計(jì)復(fù)雜度為52,總復(fù)雜度為O(N)。

  • 空間復(fù)雜度:O(C)。額外占用兩個(gè)哈希數(shù)組,英文小寫(xiě)字母26個(gè),合計(jì)52的復(fù)雜度。


方法二:字符數(shù)組 + 成員判斷

用字符數(shù)組,即下標(biāo)為字母的 ASCⅡ碼,值為詞頻統(tǒng)計(jì)兩個(gè)字符串,遍歷26個(gè)字母,分別統(tǒng)計(jì)只在一個(gè)字符串的詞頻,累加其詞頻,統(tǒng)計(jì)同時(shí)在兩個(gè)字符串的字母的詞頻,累加其差值;

Python版本

C++版本


復(fù)雜度分析

  • 時(shí)間復(fù)雜度:O(N)。 性能開(kāi)銷(xiāo)主要集中在遍歷 s 串 和 t 串統(tǒng)計(jì)詞頻中,最壞情況為兩個(gè)串的長(zhǎng)度之和 2 * 2 * 10 ^ 5, 一次遍歷詞頻數(shù)組,累計(jì)復(fù)雜度為26,總復(fù)雜度為O(N)。

  • 空間復(fù)雜度:O(C)。額外占用兩個(gè)哈希數(shù)組,英文小寫(xiě)字母26個(gè),合計(jì)52的復(fù)雜度。

備注

  1. 方法二的優(yōu)點(diǎn)在于快速判斷集合關(guān)系,不需要使用函數(shù)做成員判斷,且只需要一層形式上的for循環(huán)。

  2. 對(duì)于哈希數(shù)組,判斷一個(gè)哈希表的鍵是否在另一個(gè)哈希表的鍵的集合中,C++可以使用 main.find(other)==main.end()。


2186 使兩字符串互為字母異位詞的最少步驟數(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
昆明市| 遂昌县| 丰宁| 宜君县| 札达县| 富宁县| 衡阳县| 孟村| 抚远县| 三原县| 霍林郭勒市| 安岳县| 阜新市| 昂仁县| 休宁县| 腾冲县| 原平市| 安丘市| 丽江市| 铜川市| 彭州市| 庄河市| 任丘市| 德惠市| 克东县| 延津县| 林州市| 丰城市| 五指山市| 博湖县| 佛冈县| 武隆县| 永川市| 丘北县| 山阴县| 曲阳县| 普定县| 莒南县| 普兰县| 贡山| 偃师市|