LilianaVelvheva 17 Точки

# Programming Fundamentals Final Exam Retake 10.04.2020

## Problem 2. Mirror words

The SoftUni Spelling Bee competition is here. But it`s not like any other Spelling Bee competition out there, it`s different and a lot more fun! You, of course, are a participant and you are eager to show the competition that you are the best, so go ahead, learn the rules and win!

On the first line of the input you will be given a text string. In order to win the competition you have to find all hidden word pairs, read them and mark the ones that are mirror images of each other.

First of all you have to extract the hidden word pairs. Hidden word pairs are:

• Surrounded by "@" or "#" (only one of the two) in the following pattern #wordOne##wordTwo# or @wordOne@@wordTwo@
• At least 3 characters long each (without the surrounding symbols)
• Made up of letters only

If the second word, spelled backwards is the same as the first word and vice versa (casing matters!), then they are a match and you have to store them somewhere. Examples of mirror words:

#Part##traP# @leveL@@Level@ #sAw##wAs#

• If you don`t find any valid pairs print: "No word pairs found!"
• If you find valid pairs print their count: "{valid pairs count} word pairs found!"
• If there are no mirror words print: "No mirror words!"
• If there are mirror words print:

"The mirror words are:

{wordOne} <=> {wordtwo}, {wordOne} <=> {wordtwo}, {wordOne} <=> {wordtwo}, etc…"

### Input / Constraints

• You will recive a string.

### Output

• Print the proper output messages in the proper cases as described in the problem description.
• If there are pairs of mirror words, print them in the end, each pair separated by ", ".
• Each pair of mirror word must be printed with " <=> " between the words.

### Examples

 Input @mix#tix3dj#poOl##loOp#wl@@bong&song%4very\$long@thong#Part##traP##@@leveL@@Level@##car#rac##tu@pack@@ckap@#rr#sAw##wAs#r#@w1r Output Comments 5 word pairs found! The mirror words are: Part <=> traP, leveL <=> Level, sAw <=> wAs There are 5 green and yellow pairs that meet all requirements and thus are valid. #poOl##loOp# is valid and looks very much like a mirror words pair but it isn`t because the casings don`t match. #car#rac# “rac” spelled backwards is "car" but this is not a valid pair because there is only one "#" between the words. @pack@@ckap@ is also valid but "ckap" backwards is "pakc" which is not the same as "pack", so they are not mirror words. Input #po0l##l0op# @bAc##cAB@ @LM@ML@ #xxxXxx##xxxXxx# @aba@@ababa@ Output Comments 2 word pairs found! No mirror words! "xxxXxx" backwards is not the same as "xxxXxx" @aba@@ababa@ is a valid pair but the word lengths are different, thus these are definitely not mirror words Input #lol#lol# @#God@@doG@# #abC@@Cba# @Xyu@#uyX# Output Comments No word pairs found! No mirror words!

### JS Input / Output

 JavaScript Input [ '@mix#tix3dj#poOl##loOp#wl@@bong&song%4very\$long@thong#Part##traP##@@leveL@@Level@##car#rac##tu@pack@@ckap@#rr#sAw##wAs#r#@w1r' ] Output Comments 5 word pairs found! The mirror words are: Part <=> traP, leveL <=> Level, sAw <=> wAs There are 5 green and yellow pairs that meet all requirements and thus are valid. #poOl##loOp# is valid and looks very much like a mirror words pair but it isn`t because the casings don`t match. #car#rac# “rac” spelled backwards is "car" but this is not a valid pair because there is only one "#" between the words. @pack@@ckap@ is also valid but "ckap" backwards is "pakc" which is not the same as "pack", so they are not mirror words. Input [ '#po0l##l0op# @bAc##cAB@ @LM@ML@ #xxxXxx##xxxXxx# @aba@@ababa@' ] Output Comments 2 word pairs found! No mirror words! "xxxXxx" backwards is not the same as "xxxXxx" @aba@@ababa@ is a valid pair but the word lengths are different, thus these are definitely not mirror words Input [ '#lol#lol# @#God@@doG@# #abC@@Cba# @Xyu@#uyX#' ] Output Comments No word pairs found! No mirror words!

Тагове:
1
krum_43 750 Точки

Здравей LilianaVelvheva,

let pattern = /([#@])(<firstWord>[A-Za-z]{3,})\1{2}(<secondWord>[A-Za-z]{3,})\1/g;

Явно при писането на регекси е много важно да се напише правилно pattern-a.

Колегата icowwww е прав,че за да се зададе име на групата трябва да има знака ?,но при първата група не трябва ли да има '|'

[#|@] ?!?

0
icowwww 2678 Точки

Не, самите квадратни скоби означават, че се мачва един от изброените символи в тях. Не е нужно да специфицираш допълнително това със символ |

тоест или

(#|@)

или

([#@])

1
09/08/2021 10:42:45
krum_43 750 Точки

Да,ясно.

0
LilianaVelvheva 17 Точки

Благодаря много.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.