Advertisement
rajeshinternshala

Untitled

Aug 12th, 2023
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.70 KB | None | 0 0
  1. public static List decode(String encoded) {
  2. List ans = new ArrayList();
  3.  StringBuilder input1 = new StringBuilder();
  4.  
  5.     // append a string into StringBuilder input1
  6.     input1.append(encoded);
  7.  
  8.     // reverse StringBuilder input1
  9.     input1 = input1.reverse();
  10.  
  11.     // print reversed String
  12.     //System.out.println(input1);
  13.     encoded = input1.toString();
  14.    
  15.     int l = encoded.length();
  16.     Map<Integer,List<String>> map = new HashMap<Integer,List<String>>();
  17.     List<String> tList = new ArrayList<String>();
  18.     tList.add("");
  19.     map.put(l,tList);
  20.     map.put(l+1,tList);
  21.    
  22.     for(int i=l-1; i>=0; i--) {
  23.         List<String> currentList = new ArrayList<String>();
  24.        
  25.         if(i+2<=l) {
  26.             String s1 = encoded.substring(i,i+2);
  27.             if(isValid(s1)) {
  28.                 char c = (char)(Integer.parseInt(s1));
  29.                 List<String> t1 = map.get(i+2);
  30.                 for(String s:t1) {
  31.                     String t = c+s;
  32.                     currentList.add(t);
  33.                 }
  34.             }
  35.         }
  36.        
  37.         if(i+3<= l) {
  38.             String s1 = encoded.substring(i,i+3);
  39.             if(isValid(s1)) {
  40.                 char c = (char)(Integer.parseInt(s1));
  41.                 List<String> t1 = map.get(i+3);
  42.                 for(String s:t1) {
  43.                     String t = c+s;
  44.                     currentList.add(t);
  45.                 }
  46.             }
  47.         }
  48.         map.put(i,currentList);
  49.    
  50.     }
  51.    
  52.    
  53.     for(String s:map.get(0)) {
  54.         System.out.println(s);
  55.     }
  56.     return map.get(0);
  57.  
  58. }
  59.  
  60. public static boolean isValid(String s) {
  61.     int val = Integer.parseInt(s);
  62.     return (val >=10 && val <=126);
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement