Advertisement
Guest User

Untitled

a guest
Dec 29th, 2020
445
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.18 KB | None | 0 0
  1. import java.util.HashMap;
  2. import java.util.HashSet;
  3. import java.util.concurrent.atomic.AtomicReference;
  4.  
  5. public class GetNumbersFromWord
  6. {
  7.     @SuppressWarnings("serial")
  8.     private static final HashMap<Integer, HashMap<Character, Integer>> allTheNumbers = new HashMap<Integer, HashMap<Character, Integer>>()
  9.     {{
  10.         put(0, new HashMap<Character, Integer>(){{ put('Z', 1); put('E', 1); put('R', 1); put('O', 1); }});
  11.         put(1, new HashMap<Character, Integer>(){{ put('O', 1); put('N', 1); put('E', 1); }});
  12.         put(2, new HashMap<Character, Integer>(){{ put('T', 1); put('W', 1); put('O', 1); }});
  13.         put(3, new HashMap<Character, Integer>(){{ put('T', 1); put('H', 1); put('R', 1); put('E', 2); }});
  14.         put(4, new HashMap<Character, Integer>(){{ put('F', 1); put('O', 1); put('U', 1); put('R', 1); }});
  15.         put(5, new HashMap<Character, Integer>(){{ put('F', 1); put('I', 1); put('V', 1); put('E', 1); }});
  16.         put(6, new HashMap<Character, Integer>(){{ put('S', 1); put('I', 1); put('X', 1); }});
  17.         put(7, new HashMap<Character, Integer>(){{ put('S', 1); put('E', 2); put('V', 1); put('N', 1); }});
  18.         put(8, new HashMap<Character, Integer>(){{ put('E', 1); put('I', 1); put('G', 1); put('H', 1); put('T', 1); }});
  19.         put(9, new HashMap<Character, Integer>(){{ put('N', 2); put('I', 1); put('E', 1); }});
  20.     }};
  21.  
  22.     public static void main(final String[] args)
  23.     {
  24.         DoTheThing("nitwnoe");
  25.     }
  26.  
  27.     private static void DoTheThing(final String s)
  28.     {
  29.         final HashMap<Character, Integer> stringCharCount = new HashMap<>();
  30.         for (final char c : s.toUpperCase().toCharArray()) {
  31.             Integer count = stringCharCount.get(c);
  32.             if (count == null) count = 0;
  33.             stringCharCount.put(c, ++count);
  34.         }
  35.  
  36.         final HashSet<Integer> numbersInString = new HashSet<Integer>();
  37.  
  38.         allTheNumbers.forEach((i, numCharCounts) -> {
  39.  
  40.             final AtomicReference<Boolean> isNumberInString = new AtomicReference<>(true);
  41.  
  42.             numCharCounts.forEach((c, count) -> {
  43.                 if (!stringCharCount.containsKey(c) || stringCharCount.get(c) < count) {
  44.                     isNumberInString.set(false);
  45.                 }
  46.             });
  47.  
  48.             if (isNumberInString.get())
  49.             {
  50.                 numbersInString.add(i);
  51.             }
  52.         });
  53.  
  54.         System.out.println("numbersInString: " + numbersInString);
  55.     }
  56. }
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement