Skip to content

Commit

Permalink
Add small clarification to Lab 01.2 assignment
Browse files Browse the repository at this point in the history
  • Loading branch information
100yo committed Oct 13, 2024
1 parent b06be99 commit dcd0e27
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion 01-intro-to-java/lab/02-text-justifier/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

### Условие

С изключение на най-древните от тях, текстовите редактори позволяват различни форматирания на текста, като едни от най-често използваните възможности са свързани с подравняване на текста: отляво, отдясно или двустранно. Като част от разработката на модула за форматиране, ще създадем функция, която по даден масив от низове (думи) и максимална ширина на полето за принтиране, връща масив от низове, представляващи редовете от текста, подравнен двустранно чрез вмъкване на подходящ брой интервали между думите. Всеки ред на форматирания текст има дължина, точно равна на зададената максимална ширина на полето за принтиране. На всеки ред трябва да се съберат максималния възможен брой думи. Евентуални редове, които побират само една дума, оставяме лявоподравнени. Последният ред оставяме ляво подравнен, с единични интервали между думите и го допълваме до размера на полета с интервали отдясно. Всеки ред започва и завършва задължително с дума (не може да започва и завършва с интервал. С интервал(и) може да завършва само последният ред). Интервалите на всеки ред се разпределят максимално равномерно отляво надясно: броят интервали между всеки две думи трябва да варира най-много с единица и ако кои да е две думи са разделени с *k* интервала, всички думи на реда вляво от тези трябва да са разделени с поне *k* интервала.
С изключение на най-древните от тях, текстовите редактори позволяват различни форматирания на текста, като едни от най-често използваните възможности са свързани с подравняване на текста: отляво, отдясно или двустранно. Като част от разработката на модула за форматиране, ще създадем функция, която по даден масив от низове (думи) и максимална ширина на полето за принтиране, връща масив от низове, представляващи редовете от текста, подравнен двустранно чрез вмъкване на подходящ брой интервали между думите. Всеки ред на форматирания текст има дължина, точно равна на зададената максимална ширина на полето за принтиране. На всеки ред трябва да се съберат максималния възможен брой думи. Евентуални редове, които побират само една дума, оставяме лявоподравнени. Последният ред оставяме ляво подравнен, с единични интервали между думите и го допълваме до размера на полета с интервали отдясно. Всеки ред започва и завършва задължително с дума (не може да започва и завършва с интервал. С интервал(и) може да завършва само последният ред и евентуални редове, на които се събира само една дума). Интервалите на всеки ред се разпределят максимално равномерно отляво надясно: броят интервали между всеки две думи трябва да варира най-много с единица и ако кои да е две думи са разделени с *k* интервала, всички думи на реда вляво от тези трябва да са разделени с поне *k* интервала.

За простота, приемаме, че дума е последователност от един или повече произволни символи с графична репрезентация (т.е. думите не съдържат интервали, табулации, символи за нов ред и подобни). Също приемаме, че подаваната максимална ширина на полето е положително число, голямо поне колкото най-дългата дума, т.е. не трябва да се грижим за евентуално сричкопренасяне.

Expand Down

0 comments on commit dcd0e27

Please sign in to comment.