Advertisement
desislava_topuzakova

Untitled

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