Java Program To Find Longest Substring Without Repeating Characters In Java :-
Going to write a java program to find the longest substring without repeating characters in a given string. For example, if user input “Tutorialspoint4all.com” as a input string, then the longest substring without repeating or duplicate characters is “Tutorialsp” and its length is 10.
Java Program To Find Longest Substring Without Repeating Characters :-
/*Java Program to find longest substring without repeating characters*/ import java.util.*; import java.util.HashSet; public class Main { public static String longestSubstring(String Input_String){ HashSet<Character> set = new HashSet<Character>(); String longestOverAll = ""; String longestTillNow = ""; for (int j = 0; j < Input_String.length(); j++) { char c = Input_String.charAt(j); if (set.contains(c)) { longestTillNow = ""; set.clear(); } longestTillNow += c; set.add(c); if (longestTillNow.length() > longestOverAll.length()) { longestOverAll = longestTillNow; } } return longestOverAll; } public static int lengthOfLongestSubstring(String Input_String) { int len = Input_String.length(); Set<Character> set = new HashSet<>(); int substring_length = 0, i = 0, j = 0; while (i < len && j < len) { // try to extend the range [i, j] if (!set.contains(Input_String.charAt(j))){ set.add(Input_String.charAt(j++)); substring_length = Math.max(substring_length, j - i); } else { set.remove(Input_String.charAt(i++)); } } return substring_length; } public static void main(String[] args) { System.out.println("Enter your Input String: "); Scanner scanner = new Scanner(System.in); String Input_String = scanner.nextLine(); System.out.println("Your Longest String is " + Input_String); System.out.println("The longest Substring Length is : - " + lengthOfLongestSubstring(Input_String)); System.out.println("The longest Substring is :- "+ longestSubstring(Input_String)); } }
Output:-