Advertisement
desislava_topuzakova

02, Mirror Words

Jul 27th, 2022
475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement