-
Notifications
You must be signed in to change notification settings - Fork 2
/
print_words_buffer_size.py
executable file
·72 lines (56 loc) · 1.66 KB
/
print_words_buffer_size.py
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/python
"""
Description: fit words of a given strings into a line size. Given a buffer size and a string:
-----
20
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-----
program should print the string line by line with a line size of the buffer string, so
the result would be:
-----
Lorem ipsum dolor
sit amet,
consectetur
adipiscing elit, sed
do eiusmod tempor
incididunt ut labore
et dolore magna
aliqua. Ut enim ad
minim veniam, quis
nostrud exercitation
ullamco laboris nisi
ut aliquip ex ea
commodo consequat.
Duis aute irure
dolor in
reprehenderit in
voluptate velit esse
cillum dolore eu
fugiat nulla
pariatur. Excepteur
sint occaecat
cupidatat non
proident, sunt in
culpa qui officia
deserunt mollit anim
id est laborum.
"""
def print_words(size, arr):
arr = map(str, arr.strip().split())
cur_size = 0
cur_text = list()
for word in arr:
if (cur_size + len(word) + len(cur_text) > size):
print
cur_size = 0
cur_text = []
if len(word) > size:
print "ERROR: word '"+word+"' exceeds buffer size"
return -1
print word,
cur_size += len(word)
cur_text.append(word)
return 1
size = int(raw_input().strip())
arr = raw_input()
print_words(size, arr)