Skip to content

Commit ced7c6a

Browse files
committed
commit solution 242
1 parent 0aa4f62 commit ced7c6a

File tree

4 files changed

+108
-1
lines changed

4 files changed

+108
-1
lines changed

Diff for: solution/100-199/_sidebar.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
- [188. 买卖股票的最佳时机 iv](solution/100-199/0188.best-time-to-buy-and-sell-stock-iv/)
9898
- [189. 旋转数组 ✅](solution/100-199/0189.rotate-array/)
9999
- [190. 颠倒二进制位](solution/100-199/0190.reverse-bits/)
100-
- [191. 位1的个数](solution/100-199/0191.number-of-1-bits/)
100+
- [191. 位1的个数](solution/100-199/0191.number-of-1-bits/)
101101
- [192. 统计词频](solution/100-199/0192.word-frequency/)
102102
- [193. 有效电话号码](solution/100-199/0193.valid-phone-numbers/)
103103
- [194. 转置文件](solution/100-199/0194.transpose-file/)

Diff for: solution/200-299/0242.valid-anagram/README.md

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# [242. 有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/description/)
2+
3+
### 题目描述
4+
5+
<p>给定两个字符串 <em>s</em> 和 <em>t</em> ,编写一个函数来判断 <em>t</em> 是否是 <em>s</em> 的字母异位词。</p>
6+
7+
<p><strong>示例&nbsp;1:</strong></p>
8+
9+
<pre><strong>输入:</strong> <em>s</em> = &quot;anagram&quot;, <em>t</em> = &quot;nagaram&quot;
10+
<strong>输出:</strong> true
11+
</pre>
12+
13+
<p><strong>示例 2:</strong></p>
14+
15+
<pre><strong>输入:</strong> <em>s</em> = &quot;rat&quot;, <em>t</em> = &quot;car&quot;
16+
<strong>输出: </strong>false</pre>
17+
18+
<p><strong>说明:</strong><br>
19+
你可以假设字符串只包含小写字母。</p>
20+
21+
<p><strong>进阶:</strong><br>
22+
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?</p>
23+
24+
### 解题思路
25+
26+
1. hash table
27+
28+
### 具体解法
29+
30+
31+
#### **Golang**
32+
```go
33+
func isAnagram(s string, t string) bool {
34+
if len(s) != len(t) {
35+
return false
36+
}
37+
sMap := make(map[byte]int)
38+
for i := range s {
39+
if _, ok := sMap[s[i]]; ok {
40+
sMap[s[i]]++
41+
} else {
42+
sMap[s[i]] = 1
43+
}
44+
}
45+
46+
for i := range t {
47+
if _, ok := sMap[t[i]]; ok && sMap[t[i]] > 0 {
48+
sMap[t[i]]--
49+
} else {
50+
return false
51+
}
52+
}
53+
return true
54+
}
55+
```
56+
57+

Diff for: solution/200-299/0242.valid-anagram/solution.go

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package leetcode
2+
3+
/*
4+
* @lc app=leetcode.cn id=242 lang=golang
5+
*
6+
* [242] 有效的字母异位词
7+
*/
8+
9+
// @lc code=start
10+
func isAnagram(s string, t string) bool {
11+
if len(s) != len(t) {
12+
return false
13+
}
14+
sMap := make(map[byte]int)
15+
for i := range s {
16+
if _, ok := sMap[s[i]]; ok {
17+
sMap[s[i]]++
18+
} else {
19+
sMap[s[i]] = 1
20+
}
21+
}
22+
23+
for i := range t {
24+
if _, ok := sMap[t[i]]; ok && sMap[t[i]] > 0 {
25+
sMap[t[i]]--
26+
} else {
27+
return false
28+
}
29+
}
30+
return true
31+
}
32+
33+
// @lc code=end

Diff for: solution/200-299/0242.valid-anagram/solution_test.go

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package leetcode
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func TestHammingWeight(t *testing.T) {
8+
var num uint32
9+
var ret int
10+
11+
num = 00000000000000000000000000001011
12+
ret = 3
13+
14+
if ret != hammingWeight(num) {
15+
t.Fatalf("case fails %v\n", ret)
16+
}
17+
}

0 commit comments

Comments
 (0)