[HAI] isIsomorphic my solution
parent
8e4c2c136e
commit
4c14d98644
@ -0,0 +1,3 @@
|
||||
import { isIsomorphic } from "./isIsomorphic";
|
||||
|
||||
export default isIsomorphic;
|
||||
@ -0,0 +1,8 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { isIsomorphic } from "./isIsomorphic.ts";
|
||||
|
||||
describe("isIsomorphic", () => {
|
||||
it("badc babb => false", () => {
|
||||
expect(isIsomorphic("badc", "babb")).toBeFalsy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,16 @@
|
||||
export function isIsomorphic(s: string, t: string): boolean {
|
||||
let ht: Record<string, string> = {};
|
||||
let ht2: Record<string, string> = {};
|
||||
if (s.length !== t.length) return false;
|
||||
|
||||
for (let [index, key] of Object.entries(s)) {
|
||||
const currentValue = t[index];
|
||||
if (key in ht && currentValue !== ht[key]) return false;
|
||||
if (currentValue in ht2 && key !== ht2[currentValue]) return false;
|
||||
|
||||
ht[key] = currentValue;
|
||||
ht2[currentValue] = key;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Loading…
Reference in New Issue