מבני נתונים ואלגוריתמים - מחברת קורס/אלגוריתמים/תכנון דינאמי/תרגילים/הדפסה יפה/שאלה
ברצוננו להדפיס פסקת טקסט בצורה יפה.
נתונות לנו מילים, Word[1], Word[2], ..., Word[n]
. עלינו להחליט היכן לסיים כל שורה בפסקה, לפי הכללים הבאים:
- בכל שורת טקסט יש מקום ל תווים (אין מילה בעלת יותר מ תווים).
- יש להדפיס רווח יחיד בין כל שתי מילים באותה שורה.
דוגמה: נניח ש, והמילים הן If they have no rice, let them eat ladoo. נוכל לבנות פסקה כך: If they have no rice, let them eat ladoo. אך לא כך: If they have no rice, let them eat ladoo. (בדוגמה השניה יש יותר מ20 תווים בשורה הראשונה). |
אם בשורה יש תווים (כולל הרווחים בין המילים), אז יופי השורה
הוא . יופי הפסקה מוגדר כסכום היופי של השורות שלו, למעט השורה האחרונה.
דוגמה: בפסקה If they have no rice, let them eat ladoo. יש 15 תווים בשורה הראשונה, ו14 תווים בשורה השניה. יופי הפסקה, לכן הוא . |
אנא מצא אלגוריתם יעיל למציאת הפסקה היפה ביותר.
הנח ש הוא משתנה גלובלי נתון, ושקיימת פונקציה Length
המקבלת מספר ומחזירה את מספר התווים במילה ה.