Skip to content

afjord/unpacker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Task:

УсловиС:

ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ распаковывания строки. На Π²Ρ…ΠΎΠ΄ поступаСт строка Π²ΠΈΠ΄Π° число[строка], Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ β€” строка, содСрТащая ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ подстроки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ…ΠΎΠ΄: 3[xyz]4[xy]z Π’Ρ‹Ρ…ΠΎΠ΄: xyzxyzxyzxyxyxyxyz

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. НапримСр: 2[3[x]y] = xxxyxxxy
  • допустимыС символы Π½Π° Π²Ρ…ΠΎΠ΄: латинскиС Π±ΡƒΠΊΠ²Ρ‹, числа ΠΈ скобки []
  • числа ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ число ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ
  • скобки Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для обозначСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ подстрок
  • входная строка всСгда Π²Π°Π»ΠΈΠ΄Π½Π°.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ строку Π½Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ.

РСшСниС:

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° GitHub ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΡΠ»Π°Ρ‚ΡŒ ΠΏΠΎ e-mail. Бсылки Π½Π° GitHub ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΡΡ‹Π»Π°Ρ‚ΡŒ Π½Π° e-mail, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² письмС с ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ рСгистрации Π½Π° курс.

Solution:

Test task was solved in two ways: recursive and iterative.
Class Unpacker contains two public methods unpackRecursion() and unpackIterative(), which unpack the input string recursive or iterative accordingly. Method Validator.validate() validates resulting string.
All test are in the src/main/test/java.

About

Digital Design test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages