From f6e4521b8396b62a43b49d3fe87a316d2bc81abd Mon Sep 17 00:00:00 2001 From: Mahim Mahbub Date: Mon, 7 Nov 2022 20:17:41 +0600 Subject: [PATCH] 205. Isomorphic Strings --- java/205-Isomorphic-Strings.java | 29 +++++++++++++++++++++++++++++ swift/205-Isomorphic-Strings.swift | 24 ++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 java/205-Isomorphic-Strings.java create mode 100644 swift/205-Isomorphic-Strings.swift diff --git a/java/205-Isomorphic-Strings.java b/java/205-Isomorphic-Strings.java new file mode 100644 index 000000000..74ad778b0 --- /dev/null +++ b/java/205-Isomorphic-Strings.java @@ -0,0 +1,29 @@ +class Solution { + public boolean isIsomorphic(String s, String t) { + // Needs bidirectional mapping from s <--> t + if(s.length() != t.length()) { + return false; + } + + Map mapSourceToDest = new HashMap<>(); + Map mapDestToSource = new HashMap<>(); + + int len = s.length(); + for(int i=0; i Bool { + guard s.count == t.count else { return false } + + var mapSourceToDest: [Character: Character] = [:] + var mapDestToSource: [Character: Character] = [:] + + for (sourceChar, destChar) in zip(s, t) { + if let sourceMapped = mapSourceToDest[sourceChar] { + guard sourceMapped == destChar else { return false } + } else { + mapSourceToDest[sourceChar] = destChar + } + + if let destMapped = mapDestToSource[destChar] { + guard destMapped == sourceChar else { return false } + } else { + mapDestToSource[destChar] = sourceChar + } + } + + return true + } +} \ No newline at end of file