Advertisement
CR7CR7

mm

Nov 28th, 2022
711
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.07 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Scanner;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6.  
  7. public class MirrorWords_02 {
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.         String text = scanner.nextLine();
  11.         //"@mix#tix3dj#poOl##loOp#wl@@bong&song%4very$long@thong#Part##traP##@@leveL@@Level@##car#rac##tu@pack@@ckap@#rr#sAw##wAs#r#@w1r"
  12.         //1. намираме две думи, които образуват двойка
  13.         String regex = "(#|@)(?<first>[A-Za-z]{3,})\\1\\1(?<second>[A-Za-z]{3,})\\1";
  14.         Pattern pattern = Pattern.compile(regex);
  15.         Matcher matcher = pattern.matcher(text);
  16.         //matcher = ["#poOl##loOp#", "#Part##traP#", ...]
  17.  
  18.         List<String> pairs = new ArrayList<>(); //списък с двойките
  19.         int countAllPairs = 0; //брой на всички двойки
  20.  
  21.         while (matcher.find()) {
  22.             String firstWord = matcher.group("first");
  23.             String secondWord = matcher.group("second");
  24.             countAllPairs++;
  25.             //2. проверка дали думите са печеливши
  26.             StringBuilder secondWordBuilder = new StringBuilder(secondWord);
  27.             String reversedSecondWord = secondWordBuilder.reverse().toString();
  28.  
  29.             if (firstWord.equals(reversedSecondWord)) {
  30.                 pairs.add(firstWord + " <=> " + secondWord);
  31.             }
  32.         }
  33.  
  34.         //отпечатваме брой на намерените двойки
  35.         if (countAllPairs == 0) {
  36.             System.out.println("No word pairs found!");
  37.         } else {
  38.             System.out.println(countAllPairs + " word pairs found!");
  39.         }
  40.  
  41.         // отпечатваме само валидните двойки
  42.         if (pairs.size() == 0) {
  43.             System.out.println("No mirror words!");
  44.         } else {
  45.             System.out.println("The mirror words are:");
  46.             System.out.println(String.join(", ", pairs));
  47.         }
  48.  
  49.  
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement