Skip to content

Commit d7c5761

Browse files
authoredApr 21, 2022
Update 1898-maximum-number-of-removable-characters.js
1 parent 02f6470 commit d7c5761

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
 

‎1898-maximum-number-of-removable-characters.js

+31
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,34 @@ function is_valid(s, p, removable, cnt) {
3232
}
3333
return ind2 == len2
3434
}
35+
36+
// another
37+
38+
/**
39+
* @param {string} s
40+
* @param {string} p
41+
* @param {number[]} removable
42+
* @return {number}
43+
*/
44+
const maximumRemovals = function(s, p, removable) {
45+
let l = 0, r = removable.length
46+
while(l < r) {
47+
const mid = r - Math.floor((r - l) / 2)
48+
if(valid(mid)) l = mid
49+
else r = mid - 1
50+
}
51+
return l
52+
53+
function valid(mid) {
54+
let arr = s.split('')
55+
for (let i = 0; i < mid; i++) arr[removable[i]] = null
56+
arr = arr.filter(e => e !== null)
57+
58+
for(let i = 0, j = 0; i < arr.length && j < p.length;) {
59+
if(arr[i] === p[j]) i++, j++
60+
else i++
61+
if(j === p.length) return true
62+
}
63+
return false
64+
}
65+
};

0 commit comments

Comments
 (0)
Please sign in to comment.