Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.concurrent.atomic.AtomicReference;
- public class GetNumbersFromWord
- {
- @SuppressWarnings("serial")
- private static final HashMap<Integer, HashMap<Character, Integer>> allTheNumbers = new HashMap<Integer, HashMap<Character, Integer>>()
- {{
- put(0, new HashMap<Character, Integer>(){{ put('Z', 1); put('E', 1); put('R', 1); put('O', 1); }});
- put(1, new HashMap<Character, Integer>(){{ put('O', 1); put('N', 1); put('E', 1); }});
- put(2, new HashMap<Character, Integer>(){{ put('T', 1); put('W', 1); put('O', 1); }});
- put(3, new HashMap<Character, Integer>(){{ put('T', 1); put('H', 1); put('R', 1); put('E', 2); }});
- put(4, new HashMap<Character, Integer>(){{ put('F', 1); put('O', 1); put('U', 1); put('R', 1); }});
- put(5, new HashMap<Character, Integer>(){{ put('F', 1); put('I', 1); put('V', 1); put('E', 1); }});
- put(6, new HashMap<Character, Integer>(){{ put('S', 1); put('I', 1); put('X', 1); }});
- put(7, new HashMap<Character, Integer>(){{ put('S', 1); put('E', 2); put('V', 1); put('N', 1); }});
- put(8, new HashMap<Character, Integer>(){{ put('E', 1); put('I', 1); put('G', 1); put('H', 1); put('T', 1); }});
- put(9, new HashMap<Character, Integer>(){{ put('N', 2); put('I', 1); put('E', 1); }});
- }};
- public static void main(final String[] args)
- {
- DoTheThing("nitwnoe");
- }
- private static void DoTheThing(final String s)
- {
- final HashMap<Character, Integer> stringCharCount = new HashMap<>();
- for (final char c : s.toUpperCase().toCharArray()) {
- Integer count = stringCharCount.get(c);
- if (count == null) count = 0;
- stringCharCount.put(c, ++count);
- }
- final HashSet<Integer> numbersInString = new HashSet<Integer>();
- allTheNumbers.forEach((i, numCharCounts) -> {
- final AtomicReference<Boolean> isNumberInString = new AtomicReference<>(true);
- numCharCounts.forEach((c, count) -> {
- if (!stringCharCount.containsKey(c) || stringCharCount.get(c) < count) {
- isNumberInString.set(false);
- }
- });
- if (isNumberInString.get())
- {
- numbersInString.add(i);
- }
- });
- System.out.println("numbersInString: " + numbersInString);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement