दो स्ट्रिंग str_1 और str_2 को देखते हुए। लक्ष्य एक पुनरावर्ती प्रक्रिया का उपयोग करके स्ट्रिंग str1 में str2 को प्रतिस्थापित करने की घटनाओं की संख्या की गणना करना है।
एक पुनरावर्ती फ़ंक्शन वह होता है जिसकी परिभाषा के अंदर अपनी कॉल होती है।
अगर str1 "मुझे पता है कि आप जानते हैं कि मुझे पता है" str2="पता है"
घटनाओं की संख्या है - 3
आइए उदाहरणों से समझते हैं।
उदाहरण के लिए
इनपुट
str1 = "TPisTPareTPamTP", str2 = "TP";
आउटपुट
Count of occurrences of a substring recursively are: 4
स्पष्टीकरण
The substring TP occurs 4 times in str1.
इनपुट
str1 = "HiHOwAReyouHiHi" str2 = "Hi"
आउटपुट
Count of occurrences of a substring recursively are: 3
स्पष्टीकरण
The substring Hi occurs 3 times in str1.
नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -
इस दृष्टिकोण में हम जावा में शामिल () विधि का उपयोग करके str1 में str2 की घटना की खोज करेंगे। अगर str2 str1 में मौजूद है तो यह सच हो जाएगा। सही होने पर, जावा में रिप्लेसफर्स्ट () विधि का उपयोग करके str1 से उस पहली घटना को "" से बदलकर हटा दें और गिनती बढ़ाने के लिए रिटर्न वैल्यू में 1 जोड़ें।
-
दो स्ट्रिंग्स को str1 और str2 के रूप में लें।
-
रिकर्सिव मेथड subsrting_rec(String str, String sub) string str और उसके substring sub को लेता है और str में sub की घटनाओं की गिनती देता है।
-
जांचें कि क्या str.contains(sub) सत्य है। ( str में उप है )
-
अगर सही है तो str.replaceFirst(sub,"") का उपयोग करके उप की पहली घटना को "" से बदलें।
-
इसे एक पुनरावर्ती कॉल के अंदर subsrting_rec(String str, String sub) पर करें।
-
सभी रिकर्सन के अंत में सभी रिटर्न मानों का योग गिना जाता है।
-
परिणाम प्रिंट करें।
उदाहरण
public class recursive{ public static void main(String args[]){ String str1 = "TPisTPareTPamTP", str2 = "TP"; System.out.println("Count of occurrences of a substring recursively are: "+subsrting_rec(str1, str2)); } static int subsrting_rec(String str, String sub){ if (str.contains(sub)){ return 1 + subsrting_rec(str.replaceFirst(sub, ""), sub); } return 0; } }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of occurrences of a substring recursively are: 4