File tree 4 files changed +80
-4
lines changed
solution/0200-0299/0266.Palindrome Permutation
4 files changed +80
-4
lines changed Original file line number Diff line number Diff line change 26
26
27
27
<!-- 这里可写通用的实现逻辑 -->
28
28
29
+ 利用 HashMap(字典表)统计每个字符出现的频率,至多有一个字符出现奇数次数即可。
30
+
29
31
<!-- tabs:start -->
30
32
31
33
### ** Python3**
32
34
33
35
<!-- 这里可写当前语言的特殊实现逻辑 -->
34
36
35
37
``` python
36
-
38
+ class Solution :
39
+ def canPermutePalindrome (self , s : str ) -> bool :
40
+ mapper = {}
41
+ for ch in s:
42
+ mapper[ch] = mapper.get(ch, 0 ) + 1
43
+ cnt = 0
44
+ for _, v in mapper.items():
45
+ if v % 2 != 0 :
46
+ cnt += 1
47
+ return cnt <= 1
37
48
```
38
49
39
50
### ** Java**
40
51
41
52
<!-- 这里可写当前语言的特殊实现逻辑 -->
42
53
43
54
``` java
44
-
55
+ class Solution {
56
+ public boolean canPermutePalindrome (String s ) {
57
+ Map<Character , Integer > map = new HashMap<> ();
58
+ for (int i = 0 , n = s. length(); i < n; ++ i) {
59
+ char ch = s. charAt(i);
60
+ map. put(ch, map. getOrDefault(ch, 0 ) + 1 );
61
+ }
62
+ int cnt = 0 ;
63
+ for (Map . Entry<Character , Integer > entry : map. entrySet()) {
64
+ if (entry. getValue() % 2 != 0 ) {
65
+ ++ cnt;
66
+ }
67
+ }
68
+ return cnt <= 1 ;
69
+ }
70
+ }
45
71
```
46
72
47
73
### ** ...**
Original file line number Diff line number Diff line change 31
31
### ** Python3**
32
32
33
33
``` python
34
-
34
+ class Solution :
35
+ def canPermutePalindrome (self , s : str ) -> bool :
36
+ mapper = {}
37
+ for ch in s:
38
+ mapper[ch] = mapper.get(ch, 0 ) + 1
39
+ cnt = 0
40
+ for _, v in mapper.items():
41
+ if v % 2 != 0 :
42
+ cnt += 1
43
+ return cnt <= 1
35
44
```
36
45
37
46
### ** Java**
38
47
39
48
``` java
40
-
49
+ class Solution {
50
+ public boolean canPermutePalindrome (String s ) {
51
+ Map<Character , Integer > map = new HashMap<> ();
52
+ for (int i = 0 , n = s. length(); i < n; ++ i) {
53
+ char ch = s. charAt(i);
54
+ map. put(ch, map. getOrDefault(ch, 0 ) + 1 );
55
+ }
56
+ int cnt = 0 ;
57
+ for (Map . Entry<Character , Integer > entry : map. entrySet()) {
58
+ if (entry. getValue() % 2 != 0 ) {
59
+ ++ cnt;
60
+ }
61
+ }
62
+ return cnt <= 1 ;
63
+ }
64
+ }
41
65
```
42
66
43
67
### ** ...**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public boolean canPermutePalindrome (String s ) {
3
+ Map <Character , Integer > map = new HashMap <>();
4
+ for (int i = 0 , n = s .length (); i < n ; ++i ) {
5
+ char ch = s .charAt (i );
6
+ map .put (ch , map .getOrDefault (ch , 0 ) + 1 );
7
+ }
8
+ int cnt = 0 ;
9
+ for (Map .Entry <Character , Integer > entry : map .entrySet ()) {
10
+ if (entry .getValue () % 2 != 0 ) {
11
+ ++cnt ;
12
+ }
13
+ }
14
+ return cnt <= 1 ;
15
+ }
16
+ }
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def canPermutePalindrome (self , s : str ) -> bool :
3
+ mapper = {}
4
+ for ch in s :
5
+ mapper [ch ] = mapper .get (ch , 0 ) + 1
6
+ cnt = 0
7
+ for _ , v in mapper .items ():
8
+ if v % 2 != 0 :
9
+ cnt += 1
10
+ return cnt <= 1
You can’t perform that action at this time.
0 commit comments