-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
39 lines (39 loc) · 2.72 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
body {
font: 13px arial;
padding: 20px;
}
textarea {
width: 80%;
height: 120px;
}
#id_result {
color: #000055;
padding-top: 30px;
font: 14px 'courier new';
white-space: pre;
}
</style>
<script src="solve.js"></script>
<script src="script.js"></script>
</head>
<body>
<h3>Разбивка строк</h3>
<h4>1) Уточнения по условию</h4>
Поскольку условие местами размыто, то сделал такие допуски:<br />
- предполагается, что должно быть минимально возможное количество абзацев (из требования максимально заполнить каждый из них).<br />
- из того же требования убираем все двойные пробелы, а так же пробелы перед переносом строки (по условию не запрещается). В стандартном случае, когда у нас обычный текст, в котором слова разделены одинарными пробелами, ничего убирать не придется.<br />
- для некой субъективной "сбалансированности" минимизируем сумму квадратов отклонений от некой средней длины абзаца - что за средняя длина, выяснится далее.<br />
- непонятно, что делать со словами, которые длиннее чем заданное ограничение. На всякий случай сделал галку "переносить", которая переносит слова стандартным образом, разбивая на равные куски и остаток в конце. Без этой галки слова просто вылазят за ограничение.<br />
- если в исходной строке уже есть переносы строк, то они игнорируются и считаются пробелами, опять же по требованию максимального заполнения.<br /><br />
<h4>2) Решение</h4>
<textarea id="id_text">Alfred Aho likes to code</textarea><br />
Ограничение: <input type="text" id="id_cons" value="10" /><br />
<input checked="checked" type="checkbox" id="id_chb" /><label for="id_chb">Переносить длинные слова</label><br />
<input type="button" id="id_btnok" value="Выполнить" />
<div id="id_result"></div>
</body>
</html>