File tree 4 files changed +108
-1
lines changed
200-299/0242.valid-anagram
4 files changed +108
-1
lines changed Original file line number Diff line number Diff line change 97
97
- [ 188. 买卖股票的最佳时机 iv] ( solution/100-199/0188.best-time-to-buy-and-sell-stock-iv/ )
98
98
- [ 189. 旋转数组 ✅] ( solution/100-199/0189.rotate-array/ )
99
99
- [ 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/ )
101
101
- [ 192. 统计词频] ( solution/100-199/0192.word-frequency/ )
102
102
- [ 193. 有效电话号码] ( solution/100-199/0193.valid-phone-numbers/ )
103
103
- [ 194. 转置文件] ( solution/100-199/0194.transpose-file/ )
Original file line number Diff line number Diff line change
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 >示例  ; 1:</strong ></p >
8
+
9
+ <pre ><strong >输入:</strong > <em >s</em > = " ; anagram" ; , <em >t</em > = " ; nagaram" ;
10
+ <strong >输出:</strong > true
11
+ </pre >
12
+
13
+ <p ><strong >示例 2:</strong ></p >
14
+
15
+ <pre ><strong >输入:</strong > <em >s</em > = " ; rat" ; , <em >t</em > = " ; car" ;
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
+
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments