File tree 4 files changed +156
-4
lines changed
solution/1800-1899/1864.Minimum Number of Swaps to Make the Binary String Alternating
4 files changed +156
-4
lines changed Original file line number Diff line number Diff line change 58
58
<!-- 这里可写当前语言的特殊实现逻辑 -->
59
59
60
60
``` python
61
-
61
+ class Solution :
62
+ def minSwaps (self , s : str ) -> int :
63
+ s0n0 = s0n1 = s1n0 = s1n1 = 0
64
+ for i in range (len (s)):
65
+ if (i & 1 ) == 0 :
66
+ if s[i] != ' 0' :
67
+ s0n0 += 1
68
+ else :
69
+ s1n1 += 1
70
+ else :
71
+ if s[i] != ' 0' :
72
+ s1n0 += 1
73
+ else :
74
+ s0n1 += 1
75
+ if s0n0 != s0n1 and s1n0 != s1n1:
76
+ return - 1
77
+ if s0n0 != s0n1:
78
+ return s1n0
79
+ if s1n0 != s1n1:
80
+ return s0n0
81
+ return min (s0n0, s1n0)
62
82
```
63
83
64
84
### ** Java**
65
85
66
86
<!-- 这里可写当前语言的特殊实现逻辑 -->
67
87
68
88
``` java
69
-
89
+ class Solution {
90
+ public int minSwaps (String s ) {
91
+ int s0n0 = 0 , s0n1 = 0 ;
92
+ int s1n0 = 0 , s1n1 = 0 ;
93
+ for (int i = 0 ; i < s. length(); ++ i) {
94
+ if ((i & 1 ) == 0 ) {
95
+ if (s. charAt(i) != ' 0' ) {
96
+ s0n0 += 1 ;
97
+ } else {
98
+ s1n1 += 1 ;
99
+ }
100
+ } else {
101
+ if (s. charAt(i) != ' 0' ) {
102
+ s1n0 += 1 ;
103
+ } else {
104
+ s0n1 += 1 ;
105
+ }
106
+ }
107
+ }
108
+ if (s0n0 != s0n1 && s1n0 != s1n1) {
109
+ return - 1 ;
110
+ }
111
+ if (s0n0 != s0n1) {
112
+ return s1n0;
113
+ }
114
+ if (s1n0 != s1n1) {
115
+ return s0n0;
116
+ }
117
+ return Math . min(s0n0, s1n0);
118
+ }
119
+ }
70
120
```
71
121
72
122
### ** JavaScript**
Original file line number Diff line number Diff line change @@ -51,13 +51,63 @@ The string is now alternating.
51
51
### ** Python3**
52
52
53
53
``` python
54
-
54
+ class Solution :
55
+ def minSwaps (self , s : str ) -> int :
56
+ s0n0 = s0n1 = s1n0 = s1n1 = 0
57
+ for i in range (len (s)):
58
+ if (i & 1 ) == 0 :
59
+ if s[i] != ' 0' :
60
+ s0n0 += 1
61
+ else :
62
+ s1n1 += 1
63
+ else :
64
+ if s[i] != ' 0' :
65
+ s1n0 += 1
66
+ else :
67
+ s0n1 += 1
68
+ if s0n0 != s0n1 and s1n0 != s1n1:
69
+ return - 1
70
+ if s0n0 != s0n1:
71
+ return s1n0
72
+ if s1n0 != s1n1:
73
+ return s0n0
74
+ return min (s0n0, s1n0)
55
75
```
56
76
57
77
### ** Java**
58
78
59
79
``` java
60
-
80
+ class Solution {
81
+ public int minSwaps (String s ) {
82
+ int s0n0 = 0 , s0n1 = 0 ;
83
+ int s1n0 = 0 , s1n1 = 0 ;
84
+ for (int i = 0 ; i < s. length(); ++ i) {
85
+ if ((i & 1 ) == 0 ) {
86
+ if (s. charAt(i) != ' 0' ) {
87
+ s0n0 += 1 ;
88
+ } else {
89
+ s1n1 += 1 ;
90
+ }
91
+ } else {
92
+ if (s. charAt(i) != ' 0' ) {
93
+ s1n0 += 1 ;
94
+ } else {
95
+ s0n1 += 1 ;
96
+ }
97
+ }
98
+ }
99
+ if (s0n0 != s0n1 && s1n0 != s1n1) {
100
+ return - 1 ;
101
+ }
102
+ if (s0n0 != s0n1) {
103
+ return s1n0;
104
+ }
105
+ if (s1n0 != s1n1) {
106
+ return s0n0;
107
+ }
108
+ return Math . min(s0n0, s1n0);
109
+ }
110
+ }
61
111
```
62
112
63
113
### ** JavaScript**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int minSwaps (String s ) {
3
+ int s0n0 = 0 , s0n1 = 0 ;
4
+ int s1n0 = 0 , s1n1 = 0 ;
5
+ for (int i = 0 ; i < s .length (); ++i ) {
6
+ if ((i & 1 ) == 0 ) {
7
+ if (s .charAt (i ) != '0' ) {
8
+ s0n0 += 1 ;
9
+ } else {
10
+ s1n1 += 1 ;
11
+ }
12
+ } else {
13
+ if (s .charAt (i ) != '0' ) {
14
+ s1n0 += 1 ;
15
+ } else {
16
+ s0n1 += 1 ;
17
+ }
18
+ }
19
+ }
20
+ if (s0n0 != s0n1 && s1n0 != s1n1 ) {
21
+ return -1 ;
22
+ }
23
+ if (s0n0 != s0n1 ) {
24
+ return s1n0 ;
25
+ }
26
+ if (s1n0 != s1n1 ) {
27
+ return s0n0 ;
28
+ }
29
+ return Math .min (s0n0 , s1n0 );
30
+ }
31
+ }
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def minSwaps (self , s : str ) -> int :
3
+ s0n0 = s0n1 = s1n0 = s1n1 = 0
4
+ for i in range (len (s )):
5
+ if (i & 1 ) == 0 :
6
+ if s [i ] != '0' :
7
+ s0n0 += 1
8
+ else :
9
+ s1n1 += 1
10
+ else :
11
+ if s [i ] != '0' :
12
+ s1n0 += 1
13
+ else :
14
+ s0n1 += 1
15
+ if s0n0 != s0n1 and s1n0 != s1n1 :
16
+ return - 1
17
+ if s0n0 != s0n1 :
18
+ return s1n0
19
+ if s1n0 != s1n1 :
20
+ return s0n0
21
+ return min (s0n0 , s1n0 )
You can’t perform that action at this time.
0 commit comments