v1
- by nikkypizza 2/25/202400
Setup HTML - click to add setup HTML
disable setup JavaScript
Setup JavaScript
function insert(string, index, substring) {
  let length = string.length;
  let shift = substring.length;
  string = string.padEnd(length + shift);
  if (length > 0) {
    // Если length == 0, делать сдвиг нет смысла.
    // Кроме того, не следует в вычислениях писать (length - 1),
    // не проверив, что индекс не ноль.
    // В некоторых языках длина представляется беззнаковым целым числом,
    // в таком случае (length - 1) будет равен не -1, а числу MAX_INT,
    // и цикл станет некорректным. Мы этого избегаем.
    for (let i = length - 1; i >= index; i--) {
      string =
        string.slice(0, i + shift) + string[i] + string.slice(i + shift + 1);
    }
  }
  for (let i = 0; i < shift; i++) {
    string =
      string.slice(0, index + i) + substring[i] + string.slice(index + i + 1);
  }
  return string;
}

const insertSlice = (str, substr, index) => `${str.slice(0, index)}${substr}${str.slice(index)}`;
delete caserun single casemove downdrag and drop case


ready



insert('111'.repeat(100), 'aaa'.repeat(20), 20)
delete caserun single casemove updrag and drop case


ready



insertSlice('111'.repeat(100), 'aaa'.repeat(20), 20)
Test Case - click to add another test case
Teardown JS - click to add teardown JavaScript
Output (DOM) - click to monitor output (DOM) while test is running
RUN