From 012929c18fcc59fee6d3d74cc9c85934b6332363 Mon Sep 17 00:00:00 2001 From: mohit6923 <30485716+mohit6923@users.noreply.github.com> Date: Wed, 6 Jul 2022 23:31:01 -0700 Subject: [PATCH] Create 3-longest-substring-without-repeating-characters.java --- ...ubstring-without-repeating-characters.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 java/3-longest-substring-without-repeating-characters.java diff --git a/java/3-longest-substring-without-repeating-characters.java b/java/3-longest-substring-without-repeating-characters.java new file mode 100644 index 000000000..31d8efa3d --- /dev/null +++ b/java/3-longest-substring-without-repeating-characters.java @@ -0,0 +1,24 @@ +class Solution { + public int lengthOfLongestSubstring(String s) { + if (s == null || s.length() == 0) + return 0; + + int start = 0, maxLen = 0; + Set currentWindowSet = new HashSet<>(); + + for (int end = 0 ; end < s.length() ; end++) { + char currentChar = s.charAt(end); + if (currentWindowSet.contains(currentChar)) { + while (s.charAt(start) != currentChar) { + currentWindowSet.remove(s.charAt(start++)); + } + start++; + } else { + currentWindowSet.add(currentChar); + maxLen = Math.max(maxLen, currentWindowSet.size()); + } + } + + return maxLen; + } +}