हमें एक स्ट्रिंग और एक रेंज दी गई है जो शुरू से अंत तक है और कार्य किसी दिए गए रेंज में मौजूद पैलिंड्रोमिक सबस्ट्रिंग की गिनती की गणना करना है। पैलिंड्रोम तार वे तार होते हैं जो एक स्ट्रिंग के आगे और पीछे से समान होते हैं जैसे नितिन, अबा, आदि।
उदाहरण के लिए
इनपुट - इनपुटस्ट्रिंग ="cccaabbbdee", प्रारंभ =2, अंत =6;
आउटपुट - इंडेक्स रेंज 7 में पैलिंड्रोमिक सबस्ट्रिंग्स की संख्या
स्पष्टीकरण - हमें एक रेंज और एक स्ट्रिंग के साथ दिया गया है, इसलिए हम स्ट्रिंग को स्टार्ट पॉइंटर से ट्रैवर्स करना शुरू करेंगे जो कि 2 है यानी 'सी' से 6 तक यानी 'बी' इसलिए सबस्ट्रिंग 'कैब' है। तो पैलिंड्रोमिक सबस्ट्रिंग 'सी', 'ए', 'ए', 'बी', 'बी', 'आ' और 'बीबी' है। तो, पैलिंड्रोमिक सबस्ट्रिंग की संख्या 7 है।
इनपुट - इनपुटस्ट्रिंग ="लियोआब्बडी", प्रारंभ =0, अंत =2;
आउटपुट - इंडेक्स रेंज 3 में पैलिंड्रोमिक सबस्ट्रिंग्स की संख्या
स्पष्टीकरण - हमें एक रेंज और एक स्ट्रिंग के साथ दिया गया है, इसलिए हम स्ट्रिंग को स्टार्ट पॉइंटर से ट्रैवर्स करना शुरू करेंगे जो कि 0 है यानी 'l' से 2 तक यानी 'o' इसलिए सबस्ट्रिंग 'लियो' है। तो पैलिंड्रोमिक सबस्ट्रिंग 'l', 'i' और 'o' है। तो, पैलिंड्रोमिक सबस्ट्रिंग की संख्या 3 है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
- किसी दिए गए आकार की एक स्ट्रिंग और एक चर से शुरू होकर अंत तक एक श्रेणी घोषित करें।
- आगे की प्रक्रिया के लिए डेटा को palindrome_index(arr, InputString) नाम के फंक्शन में पास करें
- फ़ंक्शन के अंदर, सरणी आकार के साथ चेक नाम की एक और सरणी घोषित करें।
- किसी सरणी की लंबाई 0 से i के लिए लूप प्रारंभ करें
- लूप के अंदर, 0 से एक सरणी की लंबाई तक j के लिए एक और लूप प्रारंभ करें
- लूप के अंदर, चेक को चेक के रूप में सेट करें[i][j] =0 और arr[i][j] =0
- आरंभ लूप फॉर i फॉर आई से लेंथ - 1 जब तक मैं 0 से बड़ा न हो
- लूप के अंदर, i के चेक और एरर को 1 के रूप में सेट करें और फिर i + 1 से एक सरणी की लंबाई तक j के लिए एक और लूप शुरू करें
- लूप के अंदर, IF स्ट्रिंग की जाँच करें i i बराबर j पर स्ट्रिंग के बराबर है और i + 1 j - 1 से बड़ा है या जाँच करें [i + 1] [j - 1]) 0 के बराबर नहीं है तो चेक सेट करें [i] [जे] 1 ईएलएसई के रूप में, चेक सेट करें [i] [जे] 0 के रूप में सेट करें [i] [जे] =एआर [आई] [जे -1] + एआर [आई + 1] [जे] - एआर [i] + 1][j - 1] + चेक करें[i][j]
- शुरू और अंत के रूप में 2-डी सरणी प्रिंट करें।
उदाहरण
आयात करें इंट [] [] चेक =नया इंट [लंबाई + 1] [लंबाई + 1]; for (int i =0; i <=length; i++) { for (int j =0; j <=length; j++) { check[i][j] =0; गिरफ्तारी [i] [जे] =0; } } के लिए (int i =लंबाई - 1; i>=0; i--) { check[i][i] =arr[i][i] =1; के लिए (int j =i + 1; j <लंबाई; j++) {if(s.charAt(i) ==s.charAt(j) &&(i + 1> j - 1 || (चेक करें [i + 1] [जे -1])! =0)) {चेक [i] [जे] =1; } और {चेक करें [i] [जे] =0; } arr[i][j] =arr[i][j-1] + arr[i + 1][j] - arr[i + 1][j-1] + check[i][j]; } } } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {स्ट्रिंग इनपुटस्ट्रिंग ="cccaabbbdee"; int [] [] गिरफ्तारी; एआर =नया इंट [50] [50]; palindrome_index (गिरफ्तारी, इनपुटस्ट्रिंग); इंट स्टार्ट =2; इंट एंड =6; System.out.println ("इंडेक्स रेंज में पैलिंड्रोमिक सबस्ट्रिंग्स की गणना" + arr[start][end]); }}यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
आउटपुट
इंडेक्स रेंज 7 में पैलिंड्रोमिक सबस्ट्रिंग की संख्या