日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode 242.有效的字母异位词(哈希表)

發(fā)布時(shí)間:2024/9/27 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode 242.有效的字母异位词(哈希表) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

傳送門:力扣

給定兩個(gè)字符串 s 和 t ,編寫一個(gè)函數(shù)來(lái)判斷 t 是否是 s 的字母異位詞。

注意:若?s 和 t?中每個(gè)字符出現(xiàn)的次數(shù)都相同,則稱?s 和 t?互為字母異位詞。

示例?1:輸入: s = "anagram", t = "nagaram"? ? 輸出: true
示例 2:輸入: s = "rat", t = "car"? ?輸出: false

用暴力枚舉兩層for循環(huán)的時(shí)間復(fù)雜度是O(n*n)

用哈希表的時(shí)間復(fù)雜度是O(1)

用哈希表來(lái)保存s字符串所有字符的出現(xiàn)次數(shù),有點(diǎn)類似之前接觸的桶排序思想。再進(jìn)行t字符串所有字符的出現(xiàn)。操作是做兩個(gè)for循環(huán)去分別循環(huán)s,t字符串。s字符串出現(xiàn)的所有字符hash保存自增,t字符串出現(xiàn)的所有字符在hash中進(jìn)行自減操作,之后在單對(duì)hash表檢索是否有元素不是0.

大開眼界的是string是用字符數(shù)組封裝的,所以也可以直接使用? 字符串名稱.size()來(lái)獲取字符串長(zhǎng)度。非常方便。

#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std;class Solution { public:bool isAnagram(string s, string t) {int record[26] = { 0 };for (int i = 0; i < s.size(); i++) {// 并不需要記住字符a的ASCII,只要求出一個(gè)相對(duì)數(shù)值就可以了record[s[i] - 'a']++;}for (int i = 0; i < t.size(); i++) {record[t[i] - 'a']--;}for (int i = 0; i < 26; i++) {if (record[i] != 0) {// record數(shù)組如果有的元素不為零0,說(shuō)明字符串s和t 一定是誰(shuí)多了字符或者誰(shuí)少了字符。return false;}}// record數(shù)組所有元素都為零0,說(shuō)明字符串s和t是字母異位詞return true;} }; int main() {Solution solution;cout << solution.isAnagram("anagram", "nagaram") << endl;cout << solution.isAnagram("cat", "mat") << endl; }

總結(jié)

以上是生活随笔為你收集整理的Leetcode 242.有效的字母异位词(哈希表)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。