Palindrome Recursion Program -


  सार्वजनिक स्थिर बूलीयन palindrome (स्ट्रिंग इनपुट, इंट आई, इंट जे) {if (i & gt; = j) वापस सच; अगर (input.charAt (i) == इनपुट.चार्ट (j)) {i ++; j--; पैलंड्रोम (इनपुट, आई, जे); } और अगर (input.charAt (i)! = Input.charAt (j)) गलत लौटा; }  

मेरा जावा प्लेटफ़ॉर्म (ग्रहण) इस कोड को काम के रूप में स्वीकार नहीं करेगा, "वापसी प्रकार की कमी" के कारण। अब मुझे उचित कोडिंग एडिक्टिव में पता है, केवल एक रिटर्न मान का उपयोग करना बेहतर है, लेकिन जब पुनरावर्तन की बात आती है, तो यह मेरे लिए कुछ नया होता है मैं ऐसा कैसे कर सकता हूं? यदि मैं इस विधि के शीर्ष पर एक बूलियन प्रकार को इन्स्तांत करता हूं, तो यह उस चर का एक नया उदाहरण बना रहा है (और उसे निरर्थक या इसे जो भी सेट किया गया है I इसे सेट किया जाता है) हर बार विधि चलाता है, लेकिन अगर मैं इसे मेरे निर्माता से ऊपर रखता हूं, तो मेरा विधि इसके लिए कोई मान नहीं देगी / इसे वापस नहीं लौटा सकती है।

असल में, मैं अपने कोड को संशोधित करने के बारे में एक सिंगल रिटर्न वैल्यू को कैसे बदलूं जो हमेशा निष्पादित होने पर ग्रहण स्वीकार करेंगे? मैं इसे आसानी से लूपों के साथ कर सकता हूं, लेकिन मुझे यकीन नहीं है कि पुनरावृत्ति के विषय में कैसे जाना जाए।

< P> आप निश्चित रूप से यह कर सकते हैं:

<प्री> रिटर्न पलंड्रोम (इनपुट, आई, जे);

हालांकि पठनीयता में सुधार के लिए एकल वापसी करने के लिए यह अच्छा अभ्यास है। आकार के लिए इसे आज़माएं:

  बूलीयन isPalindrome = false; अगर (i & gt; = जे) isPalindrome = true; अन्यथा यदि (input.charAt (i) == input.charAt (j)) {i ++; j--; IsPalindrome = palindrome (इनपुट, आई, जे); } और अगर (input.charAt (i)! = Input.charAt (j)) isPalindrome = false; वापसी है ब्राजील; }  

उस बूलियन को हमेशा इन्स्तांत किया गया था यहां की कुंजी बनाने के लिए पुलिंड्रोम का रिटर्न उस बूलियन में संग्रहीत किया जाता है।

पलंड्रोम के लिए कॉल में रिकर्सिव भाग आता है यह केवल अंततः पुनरावर्ती कॉल के बाद अंतिम मूल्य लौटाएगा, क्योंकि यह केवल कभी निर्धारित करता है कि क्या यह एक रीढ़ चक्र के अंत तक पहुंचने पर एक पलंड्रोम होता है।


Comments

Popular posts from this blog

ios - Form Sheet content disappearing -

MySql variables and php -

c++ - an enclosing-function local variable cannot be referenced in a lambda body unless if it is in capture list -