L
Size: a a a
L
АР
АР
DE
АР
DE
L
DE
DE
function binarySimulation(s, q){
const result = []
const len = s.length
let i = 0
while (i < q.length) {
const [mode, begin, end] = q[i]
if (mode === 'I') {
const start = begin - 1
const length = end - start
const arr = new Array(len).fill(0).map(String)
arr.splice(start, length, ...'1'.repeat(length))
// console.log(arr)
const ss = s.match(/(.{1,31})/g)
const arrs = arr.join('').match(/(.{1,31})/g)
let j = 0
s = ''
while (j < ss.length) {
s += (Number(`0b${ss[j]}`) ^ Number(`0b${arrs[j]}`)).toString(2).padStart(ss[j].length, 0)
j += 1
}
}
if (mode === 'Q') {
result.push(s[q[i][1] - 1])
}
i += 1
}
return result
}
А
D
function binarySimulation(s, q){
const result = []
const len = s.length
let i = 0
while (i < q.length) {
const [mode, begin, end] = q[i]
if (mode === 'I') {
const start = begin - 1
const length = end - start
const arr = new Array(len).fill(0).map(String)
arr.splice(start, length, ...'1'.repeat(length))
// console.log(arr)
const ss = s.match(/(.{1,31})/g)
const arrs = arr.join('').match(/(.{1,31})/g)
let j = 0
s = ''
while (j < ss.length) {
s += (Number(`0b${ss[j]}`) ^ Number(`0b${arrs[j]}`)).toString(2).padStart(ss[j].length, 0)
j += 1
}
}
if (mode === 'Q') {
result.push(s[q[i][1] - 1])
}
i += 1
}
return result
}
DE
L
DE
DE
DE
DE
L
L
L
(Number(`0b${ss[j]}
) ^ Number(0b${arrs[j]}
)).toString(2)` - а это... тут за битами скрыто куча функций, он конкатенации строк до преобразования в число