Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- import java.util.LinkedHashMap;
- import java.util.Scanner;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class PostOffice {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String[] input = scanner.nextLine().split("\\s*\\|\\s*");
- Matcher capitalLetters = Pattern.compile("([#$*&])(?<sym>[A-Z]+)\\1").matcher(input[0]);
- Matcher infoWord = Pattern.compile("(?<ascii>[0-9]+):(?<length>[0-9]{2})").matcher(input[1]);
- String[] words = input[2].split("\\s+");
- LinkedHashMap<Character, Integer> acceptedWords = new LinkedHashMap<>();
- String firstLetter = "";
- while (capitalLetters.find())
- firstLetter = capitalLetters.group("sym");
- for (int i = 0; i < firstLetter.length(); i++) {
- acceptedWords.put(firstLetter.charAt(i), 0);
- }
- while (infoWord.find()) {
- char firstSymbol = (char) Integer.parseInt(infoWord.group("ascii"));
- if (firstLetter.contains("" + firstSymbol)) {
- int length = Integer.parseInt(infoWord.group("length"))
- + 1;
- if (length >= 1 && length <= 20)
- acceptedWords.put(firstSymbol, length);
- }
- }
- acceptedWords
- .entrySet()
- .forEach((k -> {
- Arrays.stream(words)
- .filter(word -> word.charAt(0) == k.getKey() && word.length() == k.getValue())
- .forEach(System.out::println);
- }));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment