Vasily Guzov 1 year ago
parent 807a5ae9cf
commit 77824baa7c

@ -0,0 +1,26 @@
import { describe, it, expect } from "vitest";
import { backspaceCompare } from "./backspaceCompare.ts";
describe("backspaceCompare", () => {
it("ab#c, ad#c => true", () => {
expect(backspaceCompare("ab#c", "ad#c")).toBeTruthy();
});
it("ab##, c#d# => true", () => {
expect(backspaceCompare("ab##", "c#d#")).toBeTruthy();
});
it("a#c, b => false", () => {
expect(backspaceCompare("a#c", "b")).toBeFalsy();
});
it("bxj##tw, bxj###tw => false", () => {
expect(backspaceCompare("bxj##tw", "bxj###tw")).toBeFalsy();
});
it("nzp#o#g, b#nzp#o#g => true", () => {
expect(backspaceCompare("nzp#o#g", "b#nzp#o#g")).toBeTruthy();
});
});

@ -0,0 +1,31 @@
function findNotSkipedIndex(s: string, i: number) {
let skipCount = 0;
while (i >= 0 && (skipCount > 0 || s[i] === '#')) {
if (s[i] === '#') {
skipCount += 1;
i -= 1;
continue;
}
skipCount -= 1;
i -= 1;
}
return i;
};
export function backspaceCompare(s: string, t: string): boolean {
let sI = s.length;
let tI = t.length;
while (sI > 0 && tI > 0) {
sI = findNotSkipedIndex(s, sI - 1);
tI = findNotSkipedIndex(t, tI - 1);
if (sI >= 0 && tI >= 0 && s[sI] !== t[tI]) {
return false;
}
}
return findNotSkipedIndex(s, sI - 1) === findNotSkipedIndex(t, tI - 1);
};

@ -0,0 +1,3 @@
import { backspaceCompare } from "./backspaceCompare";
export default backspaceCompare;

@ -0,0 +1,33 @@
# backspaceCompare
## описание задачи
## тест кейсы
## текстовое описание решения
## ассимптотическая оценка
| Description | Estimation |
| ----------- | ---------- |
| time: | O(n) |
| mem: | O(n) |
## time
| Description | Time |
| ------------------------------------------- | ----- |
| анализ и сбор информации | 00:00 |
| обдумываение решения и формулировка решения | 00:00 |
| имплементация | 00:00 |
| исправление ошибок | 00:00 |
| полное время затраченое на решение | 00:00 |
## журнал ошибок
## code
### typescript
ts
Loading…
Cancel
Save