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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode--49. 字母异味词分组

發布時間:2024/7/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode--49. 字母异味词分组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給定一個字符串數組,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字符串。

示例:

輸入: ["eat", "tea", "tan", "ate", "nat", "bat"],
輸出:
[
? ["ate","eat","tea"],
? ["nat","tan"],
? ["bat"]
]
說明:

所有輸入均為小寫字母。
不考慮答案輸出的順序。

方法一:? ?時間復雜度O(nk)? k是最長的字符串長度,n是字符串的數量

記錄字符串中每個字母出現的次數,映射到哈希表中,如果兩個字符串含有的字母相同且數量一致,則說明是一類

class Solution {
? ? public static List<List<String>> groupAnagrams(String[] strs) {
?? ??? ? List<List<String>> result = new ArrayList<List<String>>();
?? ??? ? boolean used[] = new boolean[strs.length];
?? ??? ? int i,j;
?? ??? ? for(i=0;i<strs.length;i++)
?? ??? ? {
?? ??? ??? ? List<String> temp = null;
?? ??? ??? ? if(used[i]!=true)? //used用來表示當前字符串是否已被添加過
?? ??? ??? ? {
?? ??? ??? ??? ? temp = new ArrayList<String>();
?? ??? ? ? ? ? ? temp.add(strs[i]);
?? ??? ??? ??? ? for(j=i+1;j<strs.length;j++)
?? ??? ??? ??? ? {
?? ??? ??? ??? ??? ? if(used[j]==false&&equals(strs[i],strs[j])==true)
?? ??? ??? ??? ??? ? {
?? ??? ??? ??? ??? ??? ? used[j] = true;
?? ??? ??? ??? ??? ??? ? temp.add(strs[j]);
?? ??? ??? ??? ??? ? }
?? ??? ??? ??? ? }
?? ??? ??? ? }
?? ??? ??? ? if(temp!=null)
?? ??? ??? ? {
?? ??? ??? ??? ? result.add(temp);
?? ??? ??? ? }
?? ??? ? }
?? ??? ? return result;
?? ? ? ?}
?? ? public static boolean equals(String a,String b)
?? ? {
?? ??? ? Map<Character,Integer> map = new HashMap<>();
?? ??? ? int i;
?? ??? ? for(i=0;i<a.length();i++)//將第一個字符串各字母的數量記錄下來
?? ??? ? {
?? ??? ??? ? if(map.containsKey(a.charAt(i)))
?? ??? ??? ? {
?? ??? ??? ??? ? map.put(a.charAt(i), map.get(a.charAt(i))+1);//如果已經有這個字母,那數量加一
?? ??? ??? ? }
?? ??? ??? ? else
?? ??? ??? ? {
?? ??? ??? ??? ? map.put(a.charAt(i), 1);/如果還沒有這個字母,添加進去,數量置為1
?? ??? ??? ? }
?? ??? ? }
?? ??? ? for(i=0;i<b.length();i++)? //比較字符串b和a含有的字母種類,數量是否一致
?? ??? ? {
?? ??? ??? ? if(map.containsKey(b.charAt(i)))
?? ??? ??? ? {
?? ??? ??? ??? ? map.put(b.charAt(i), map.get(b.charAt(i))-1);//如果哈希表中有b的這個字母,那數量減一
?? ??? ??? ? }
?? ??? ??? ? else
?? ??? ??? ? {
?? ??? ??? ??? ? return false; //如果沒有,說明兩個就不是一類
?? ??? ??? ? }
?? ??? ? }
?? ??? ? Set<Character> set = map.keySet();//最后哈希表中各值為0,說明是一類
?? ??? ? for(char c:set)
?? ??? ? {
?? ??? ??? ? if (map.get(c) != 0)?
?? ??? ??? ? {
?? ??? ? ? ? ? ? ? return false;
?? ??? ? ? ? }
?? ??? ? }
?? ??? ?return true;
?? ??? ??
?? ? }
}

方法二:

將每個字符串按照字母順序排序,這樣的話就可以把 eat,tea,ate 都映射到 aet。其他的類似。

class?Solution?{

????public?List<List<String>>?groupAnagrams(String[]?strs)?{

????????HashMap<String,?List<String>>?hash?=?new?HashMap<>();

????????????for?(int?i?=?0;?i?<?strs.length;?i++)?{

????????????????char[]?s_arr?=?strs[i].toCharArray();

????????????????Arrays.sort(s_arr);//對當前字符串進行排序

????????????????String?key?=?String.valueOf(s_arr); //將排序后的字符串作為一個key

????????????????if?(hash.containsKey(key))?{

????????????????????hash.get(key).add(strs[i]); //如果包含這個key,那添加進這個key對應的value

????????????????}?else?{

????????????????????List<String>?temp?=?new?ArrayList<String>();

????????????????????temp.add(strs[i]);

????????????????????hash.put(key,?temp);//如果不包含,創建一個新的key,進行添加

????????????????}

?

????????????}

????????????return?new?ArrayList<List<String>>(hash.values());?

?????????

????}

}

總結

以上是生活随笔為你收集整理的Leetcode--49. 字母异味词分组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧洲人妻丰满av无码久久不卡 | aa黄色片 | 天堂av在线资源 | 国产激情久久久久久熟女老人av | 成人国产三级 | 美女激情网站 | 国产精自产拍久久久久久蜜 | 麻豆av免费在线 | 男人日女人的网站 | 日韩色图在线观看 | 亚洲国产精品久久久久爰色欲 | 国产精品拍拍 | 国精无码欧精品亚洲一区蜜桃 | 男人的天堂黄色 | 麻豆自拍视频 | 黑人巨大猛烈捣出白浆 | 中国丰满人妻videoshd | 日韩图片一区 | 手机在线播放av | 国产精品一区二区三区免费看 | 黄色片美女 | 欧美粗暴jizz性欧美20 | 一级黄色录象 | 婷婷色在线 | 久草视频中文在线 | 久久一区二区三区四区五区 | 香蕉国产片 | 制服.丝袜.亚洲.中文.综合懂 | 丰满少妇中文字幕 | 91人人看| 亚洲国产理论 | 午夜精品久久99蜜桃的功能介绍 | 欧美日韩大片在线观看 | 久草网视频 | 中文日韩在线 | 精品动漫一区二区 | 亚洲国产精品影院 | 男女黄床上色视频免费的软件 | 国产综合亚洲精品一区二 | 成人久久久 | 中文字幕免费在线看线人动作大片 | 女人下边被添全过视频 | 亚洲色图狠狠干 | 6080亚洲精品一区二区 | 久久亚洲AV无码专区成人国产 | 无码人妻一区二区三区在线视频 | 国产精品无码免费在线观看 | 精品人妻久久久久一区二区三区 | 天天天天 | 伊人一级 | 邻家有女4完整版电影观看 欧美偷拍另类 | 国产成人h| 国产一区二区99 | 国产a级免费视频 | 国产高清自拍一区 | 荡女精品导航 | 窝窝视频在线 | 日韩精品成人在线 | 中文字字幕在线中文乱码电影 | 无码h黄肉3d动漫在线观看 | 日韩激情国产 | 中文在线字幕观看 | 久久中文字幕一区二区 | 中国美女囗交视频 | 天天色天天看 | 丁香激情网 | 日本一区二区免费在线观看 | 在线看片 | 色婷婷国产 | 亚洲精品动漫在线观看 | 爱情岛论坛亚洲品质自拍视频 | 欧美成人91 | 波多野结衣在线免费观看视频 | 亚洲激情视频小说 | 精品91视频| 亚洲伦理一区二区三区 | 国产叼嘿视频在线观看 | 成人在线免费视频观看 | 午夜网址 | 一级a性色生活片久久无 | 人人射人人干 | 97精品久久 | 亚洲国产99 | 曰韩一级片 | 特黄三级 | 99热热热 | 成人午夜视频免费在线观看 | 亚洲综合在线第一页 | 欧美一级欧美三级在线观看 | 99国产在线观看 | 日韩欧美爱爱 | 精品国产乱码久久久久久影片 | 欧美成人va| 中文字幕免费高清在线 | 中文字幕人乱码中文字 | 亚洲伦理一区二区 | 网红av在线 | va婷婷在线免费观看 | 伊人论坛 |