Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.telerikacademy.oop;
- import java.util.*;
- import java.util.stream.Collectors;
- public class Cypher {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String numInput = scanner.nextLine();
- String input = scanner.nextLine();
- String[] letters = input.replaceAll("[^A-Z]", " ").split("");
- String[] numbers = input.replaceAll("[^0-9]", " ").split("");
- String code = numInput;
- Map<String, String> treeMap = new HashMap<>();
- Map<String,String> counter = new TreeMap<>();
- // int[] counter = {0};
- String letter = "";
- String num = "";
- // 1122
- // A-1
- // B-12
- // C-11
- // D-2
- for (int i = 1; i < input.length(); i++) {
- if (!letters[i - 1].equals(" ")) {
- String current = letters[i - 1];
- letter = current;
- int temp = i;
- StringBuilder number = new StringBuilder();
- num = numbers[temp];
- while (!numbers[temp].equals(" ") && temp != input.length() - 1) {
- number.append(numbers[temp]);
- temp++;
- }
- treeMap.put(current, number.toString());
- }
- }
- treeMap.replace(letter, num);
- findVariations(numInput, "", "", treeMap, counter,code);
- System.out.println(counter.size());
- counter.keySet().stream().distinct().forEach(System.out::println);
- // for (String values : counter.keySet()) {
- // System.out.println(values);
- // }
- }
- private static void findVariations(String numInput, String prefix, String digits, Map<String, String> treeMap, Map<String,String> counter,String code) {
- if (digits.equals(code)) {
- // System.out.println(prefix);
- if (!counter.containsKey(prefix)) {
- counter.put(prefix, digits);
- }
- return;
- }
- for (Map.Entry<String, String> values : treeMap.entrySet()) {
- if (numInput.contains(values.getValue())) {
- String outPut = prefix + values.getKey();
- String newDigits = digits + values.getValue();
- findVariations(numInput.substring(1), outPut, newDigits, treeMap, counter,code);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment