fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static int maxLengthSubstring(String s){
  11. int length = s.length();
  12. Map<Character, Integer> mp = new HashMap<>();
  13. int start = 0;
  14. int end = 0;
  15. int ans = 0;
  16. if(length == 0 || length == 1){
  17. return length;
  18. }
  19. while(end < length){
  20. char r = s.charAt(end);
  21. if(mp.containsKey(r) && start <= mp.get(r)){
  22. start = mp.get(r)+1;
  23. }
  24. mp.put(r,end);
  25. ans = Math.max(ans, end - start+1);
  26. end++;
  27. }
  28. return ans;
  29. }
  30. public static void main (String[] args) throws java.lang.Exception
  31. {
  32. System.out.println(Ideone.maxLengthSubstring("abcd"));
  33. System.out.println(Ideone.maxLengthSubstring("abcba"));
  34. }
  35. }
Success #stdin #stdout 0.08s 47124KB
stdin
Standard input is empty
stdout
4
3