diff --git a/01-intro-to-java/lab/02-text-justifier/README.md b/01-intro-to-java/lab/02-text-justifier/README.md index d370608b..a016bf86 100644 --- a/01-intro-to-java/lab/02-text-justifier/README.md +++ b/01-intro-to-java/lab/02-text-justifier/README.md @@ -2,7 +2,7 @@ ### Условие -С изключение на най-древните от тях, текстовите редактори позволяват различни форматирания на текста, като едни от най-често използваните възможности са свързани с подравняване на текста: отляво, отдясно или двустранно. Като част от разработката на модула за форматиране, ще създадем функция, която по даден масив от низове (думи) и максимална ширина на полето за принтиране, връща масив от низове, представляващи редовете от текста, подравнен двустранно чрез вмъкване на подходящ брой интервали между думите. Всеки ред на форматирания текст има дължина, точно равна на зададената максимална ширина на полето за принтиране. На всеки ред трябва да се съберат максималния възможен брой думи. Евентуални редове, които побират само една дума, оставяме лявоподравнени. Последният ред оставяме ляво подравнен, с единични интервали между думите и го допълваме до размера на полета с интервали отдясно. Всеки ред започва и завършва задължително с дума (не може да започва и завършва с интервал. С интервал(и) може да завършва само последният ред). Интервалите на всеки ред се разпределят максимално равномерно отляво надясно: броят интервали между всеки две думи трябва да варира най-много с единица и ако кои да е две думи са разделени с *k* интервала, всички думи на реда вляво от тези трябва да са разделени с поне *k* интервала. +С изключение на най-древните от тях, текстовите редактори позволяват различни форматирания на текста, като едни от най-често използваните възможности са свързани с подравняване на текста: отляво, отдясно или двустранно. Като част от разработката на модула за форматиране, ще създадем функция, която по даден масив от низове (думи) и максимална ширина на полето за принтиране, връща масив от низове, представляващи редовете от текста, подравнен двустранно чрез вмъкване на подходящ брой интервали между думите. Всеки ред на форматирания текст има дължина, точно равна на зададената максимална ширина на полето за принтиране. На всеки ред трябва да се съберат максималния възможен брой думи. Евентуални редове, които побират само една дума, оставяме лявоподравнени. Последният ред оставяме ляво подравнен, с единични интервали между думите и го допълваме до размера на полета с интервали отдясно. Всеки ред започва и завършва задължително с дума (не може да започва и завършва с интервал. С интервал(и) може да завършва само последният ред и евентуални редове, на които се събира само една дума). Интервалите на всеки ред се разпределят максимално равномерно отляво надясно: броят интервали между всеки две думи трябва да варира най-много с единица и ако кои да е две думи са разделени с *k* интервала, всички думи на реда вляво от тези трябва да са разделени с поне *k* интервала. За простота, приемаме, че дума е последователност от един или повече произволни символи с графична репрезентация (т.е. думите не съдържат интервали, табулации, символи за нов ред и подобни). Също приемаме, че подаваната максимална ширина на полето е положително число, голямо поне колкото най-дългата дума, т.е. не трябва да се грижим за евентуално сричкопренасяне.