Skip to content

Commit 6f616b0

Browse files
authored
Update 1888-minimum-number-of-flips-to-make-the-binary-string-alternating.js
1 parent 2709eab commit 6f616b0

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

1888-minimum-number-of-flips-to-make-the-binary-string-alternating.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,40 @@ const minFlips = function (s) {
7676
return res
7777
}
7878

79+
// another
80+
81+
/**
82+
* @param {string} s
83+
* @return {number}
84+
*/
85+
const minFlips = function (s) {
86+
const n = s.length
87+
const ss = s + s
88+
let s1 = '', s2 = ''
89+
for(let i = 0; i < 2 * n; i++) {
90+
if(i % 2 === 0) {
91+
s1 += '0'
92+
s2 += '1'
93+
}else{
94+
s1 += '1'
95+
s2 += '0'
96+
}
97+
}
7998

99+
let res = Infinity, res1 = 0, res2 = 0
100+
101+
for (let i = 0; i < 2 * n; i++) {
102+
if(ss[i] !== s1[i]) res1++
103+
if(ss[i] !== s2[i]) res2++
104+
if(i >= n) {
105+
if(ss[i - n] !== s1[i - n]) res1--
106+
if(ss[i - n] !== s2[i - n]) res2--
107+
}
108+
if(i >= n - 1) {
109+
res = Math.min(res, res1, res2)
110+
}
111+
}
112+
113+
return res
114+
}
80115

0 commit comments

Comments
 (0)