Skip to content

Commit c3d410f

Browse files
committed
feat: add 49
1 parent 8f41fed commit c3d410f

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

docs/1-100/49.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# 49 字母异位词分组
2+
3+
## 题目
4+
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
5+
6+
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
7+
8+
9+
10+
示例 1:
11+
```javascript
12+
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
13+
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
14+
```
15+
16+
示例 2:
17+
```javascript
18+
输入: strs = [""]
19+
输出: [[""]]
20+
```
21+
22+
示例 3:
23+
```javascript
24+
输入: strs = ["a"]
25+
输出: [["a"]]
26+
```
27+
28+
提示:
29+
```javascript
30+
1 <= strs.length <= 104
31+
0 <= strs[i].length <= 100
32+
strs[i] 仅包含小写字母
33+
```
34+
35+
## 题解
36+
1. 利用code字符,计算出 出现的次数,然后比较相同的字符则为异或词
37+
38+
:::tip
39+
<runtime :list="[104, 77.34, 50.7, 81.13]" />
40+
:::
41+
42+
43+
```javascript
44+
/**
45+
* @param {string[]} strs
46+
* @return {string[][]}
47+
*/
48+
var groupAnagrams = function(strs) {
49+
let map = new Map()
50+
for(let i=0;i<strs.length;i++) {
51+
let code = getCodeStr(strs[i])
52+
if(map.get(code)) {
53+
map.set(code, [...map.get(code), strs[i]])
54+
} else {
55+
map.set(code, [strs[i]])
56+
}
57+
}
58+
59+
return Array.from(map.values())
60+
};
61+
62+
function getCodeStr(str) {
63+
let list = new Array(26).fill(0)
64+
65+
for(let i=0;i<str.length;i++) {
66+
list[str.charCodeAt(i) - 97]++
67+
}
68+
69+
return list.join(',')
70+
}
71+
```

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy