Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

वर्ड रैप प्रॉब्लम


शब्दों का एक क्रम दिया गया है, प्रत्येक पंक्ति के लिए वर्णों की संख्या की एक सीमा है। लाइन ब्रेक लगाकर, इस तरह से कि लाइनें स्पष्ट रूप से छपी हों।

पंक्तियों को संतुलित किया जाना चाहिए, जब कुछ पंक्तियों में बहुत अधिक अतिरिक्त स्थान होते हैं और कुछ पंक्तियों में कम संख्या में अतिरिक्त स्थान होते हैं, तो यह उन्हें अलग-अलग रेखाओं में संतुलित कर देगा। यह उन्हें संतुलित करने के लिए समान संख्या में अतिरिक्त रिक्त स्थान का उपयोग करने का प्रयास करता है।

यह एल्गोरिथ्म उत्पन्न करेगा कि एक पंक्ति में कितने शब्द रखे जा सकते हैं, और कितनी पंक्तियों की आवश्यकता है।

इनपुट और आउटपुट

इनपुट:प्रत्येक पंक्ति के लिए शब्दों की लंबाई। {3, 2, 2, 5}। अधिकतम चौड़ाई 6 है। आउटपुट:पंक्ति संख्या 1:शब्द संख्या:1 से 1 (केवल एक शब्द) पंक्ति संख्या 2:शब्द संख्या:2 से 3 (दूसरा और तीसरा शब्द) पंक्ति संख्या 3:शब्द संख्या:4 से 4 ( चौथा शब्द)

एल्गोरिदम

wordWrap(wordLenArr, size, maxWidth)

इनपुट - शब्द लंबाई सरणी, सरणी का आकार और शब्द की अधिकतम चौड़ाई।

आउटपुट - सूची में प्रति पंक्ति कितने शब्द होंगे।

दो वर्ग मैट्रिक्स को परिभाषित करना शुरू करें अतिरिक्त स्पेस और ऑर्डर की लाइनकॉस्ट (आकार + 1) दो सरणी कुल लागत और आकार के समाधान को परिभाषित करें (आकार + 1) i:=1 से आकार के लिए, अतिरिक्त स्पेस करें [i, i]:=मैक्सविड्थ - WordLenArr[i - 1] j के लिए:=i+1 आकार के लिए, अतिरिक्त स्थान करें[i, j]:=extraSpace[i, j-1] - wordLenArr[j-1] - 1 i के लिए किया गया :=1 से आकार, जे के लिए करें:=i+1 आकार के लिए, अगर अतिरिक्त स्पेस [i, j] <0, फिर लाइनकॉस्ट [i, j] =∞ और यदि j =आकार और अतिरिक्त स्थान [i, j]> =0, तो करें लाइनकॉस्ट [आई, जे]:=0 और लिनकॉस्ट [आई, जे]:=अतिरिक्त स्पेस [आई, जे] ^ 2 किया गया कुल लागत [0]:=0 जे के लिए:=1 आकार के लिए, कुल लागत करें [जे]:=∞ for i :=1 to j, do if TotalCost[i-1] और linCost[i, j] और (totalCost[i-1] + lineCost[i,j] उदाहरण 
#शामिल करेंनेमस्पेस std का उपयोग करना;int dispSolution (int Solution[], int size) { int k; अगर (समाधान [आकार] ==1) के =1; अन्य k =dispSolution (समाधान, समाधान [आकार] -1) + 1; cout <<"लाइन नंबर "<=0) lineCost[i][j] =0; अन्य लाइनकॉस्ट [i] [जे] =अतिरिक्त स्पेस [i] [जे] * अतिरिक्त स्पेस [i] [जे]; } } कुल लागत [0] =0; के लिए (int j =1; j <=size; j++) {// शब्दों के लिए न्यूनतम लागत पाएं TotalCost[j] =INT_MAX; के लिए (int i =1; i <=j; i++) { if (totalCost[i-1] !=INT_MAX &&lineCost[i][j] !=INT_MAX &&(totalCost[i-1] + lineCost[i] [जे] <कुल लागत [जे])) {कुल लागत [जे] =कुल लागत [i-1] + लाइन लागत [i] [जे]; समाधान [जे] =मैं; } } } dispSolution(समाधान, आकार);}मुख्य() { int wordLenArr[] ={3, 2, 2, 5}; इंट एन =4; इंट मैक्सविड्थ =6; वर्डव्रैप (वर्डलेनएआर, एन, मैक्सविड्थ);}

आउटपुट

पंक्ति संख्या 1:शब्द संख्या:1 से 1पंक्ति संख्या 2:शब्द संख्या:2 से 3पंक्ति संख्या 3:शब्द संख्या:4 से 4

  1. माइक्रोसॉफ्ट वर्ड में पेपर साइज कैसे बदलें

    माइक्रोसॉफ्ट वर्ड में कई पेपर साइज स्टैंडर्ड कन्वेंशन मौजूद हैं लेकिन माइक्रोसॉफ्ट वर्ड में डिफॉल्ट डॉक्यूमेंट साइज 8.5-बाय-11 इंच - रेगुलर लेटर पेपर है। इस डिफ़ॉल्ट आकार से चिपके रहना आवश्यक नहीं है। आप माइक्रोसॉफ्ट वर्ड में कागज़ का आकार बदल सकते हैं आपकी आवश्यकताओं के अनुसार। यहां बताया गया है। म

  1. माइक्रोसॉफ्ट वर्ड में पिक्चर्स और इमेज के आसपास टेक्स्ट कैसे रैप करें

    दस्तावेज़ बनाने के लिए Microsoft Word एक बहुत ही उपयोगी उपकरण है। टेक्स्ट दर्ज करने के अलावा, टूल आपको अपने दस्तावेज़ में छवियों को शामिल करने की अनुमति देता है ताकि इसे और अधिक स्पष्ट किया जा सके। इस तरह की व्यवस्था को प्रदर्शित करने से पाठक को ऐसा लगता है जैसे जोड़ा गया चित्र पाठ के अलग-अलग पात्रो

  1. माइक्रोसॉफ्ट वर्ड में इमेज के चारों ओर टेक्स्ट कैसे लपेटें?

    Microsoft Word एक वर्ड प्रोसेसर है जो आपको दस्तावेज़, रिज्यूमे, पत्र और रिपोर्ट बनाने की अनुमति देता है। अधिकांश समय उपयोगकर्ताओं को अपने दस्तावेज़ों में केवल पाठ की आवश्यकता होगी। हालांकि, कभी-कभी उन्हें चित्र, प्रतीक और कलाकृति जोड़ने की आवश्यकता होगी। किसी दस्तावेज़ में चित्र जोड़ना महत्वपूर्ण जा