स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करने के लिए जावा प्रोग्राम निम्नलिखित है:
उदाहरण
public class Demo{
static void print_permutations(String my_str,String my_ans){
if (my_str.length() == 0){
System.out.print(my_ans + " ");
return;
}
boolean my_arr[] = new boolean[26];
for (int i = 0; i < my_str.length(); i++){
char ch = my_str.charAt(i);
String remaining_str = my_str.substring(0, i) + my_str.substring(i + 1);
if (my_arr[ch - 'a'] == false)
print_permutations(remaining_str, my_ans + ch);
my_arr[ch - 'a'] = true;
}
}
public static void main(String[] args){
String my_str = "hey";
System.out.println("स्ट्रिंग के क्रमपरिवर्तन हैं :");
print_permutations(my_str, "");
}
}
आउटपुट
स्ट्रिंग के क्रमपरिवर्तन हैं : hey hye ehy eyh yhe yeh
Demo नामक एक क्लास में print_permutations नामक एक स्टैटिक फंक्शन होता है, जो जांचता है कि क्या स्ट्रिंग खाली है, और यदि यह है, तो आउटपुट प्रिंट किया जाता है। अब, my_arr नामक एक बूलियन ऐरे को 36 के आकार के साथ असाइन किया जाता है, जिसमें डिफ़ॉल्ट रूप से false मान स्टोर होते हैं। जब भी एक वर्णमाला का उपयोग किया जाता है, तो ऐरे में उसका इंडेक्स true में बदल जाता है।
स्ट्रिंग की लंबाई पर पुनरावृति करने के लिए एक for लूप का उपयोग किया जाता है और स्ट्रिंग का iवां वर्ण जांचा जाता है। ith वर्ण के बिना स्ट्रिंग का शेष भाग remaining_str नामक एक स्ट्रिंग को असाइन किया जाता है। यदि वर्ण उपयोग नहीं किया गया है, तो फंक्शन के लिए एक रिकर्सिव कॉल होती है। अन्यथा, कोई फंक्शन कॉल नहीं होती। मुख्य फंक्शन में, एक स्ट्रिंग परिभाषित की जाती है और इस स्ट्रिंग पर फंक्शन को कॉल किया जाता है।