मान लीजिए कि हमारे पास वर्णमाला "abcdefghiklimnop" है। मैं सक्रिय रूप से पांच समूहों के समूहों में इस वर्णमाला की पुनरावृत्ति के साथ क्रमिक रूप से क्रमपरिवर्तन कैसे उत्पन्न कर सकता हूं?एक निश्चित लंबाई के सभी क्रमपरिवर्तन उत्पन्न करना
मैं अब कुछ दिनों से संघर्ष कर रहा हूं। कोई प्रतिक्रिया उपयोगी होगी।
अनिवार्य रूप से यह एक ही है के रूप में: Generating all permutations of a given string
हालांकि, मैं अभी पूरी स्ट्रिंग के पांच की लंबाई में क्रमपरिवर्तन चाहते हैं। और मैं इसे समझने में सक्षम नहीं हूं।
SO "abcdefghiklimnop" की लंबाई 5 की सभी सबस्ट्रिंग्स के लिए, सबस्ट्रिंग के क्रमपरिवर्तन को ढूंढें। उदाहरण के लिए, यदि सबस्ट्रिंग abcdef था, तो मैं उसमें से सभी क्रमपरिवर्तन चाहता हूं, या अगर सबस्ट्रिंग defli था, तो मैं उस सबस्ट्रिंग के सभी क्रमिकता चाहता हूँ। नीचे दिया गया कोड मुझे स्ट्रिंग के सभी क्रमपरिवर्तन देता है लेकिन मैं स्ट्रिंग के आकार 5 के सभी सबस्ट्रिंग्स के सभी क्रमपरिवर्तनों को खोजने के लिए उपयोग करना चाहता हूं।
public static void permutation(String str) {
permutation("", str);
}
private static void permutation(String prefix, String str) {
int n = str.length();
if (n == 0) System.out.println(prefix);
else {
for (int i = 0; i < n; i++)
permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i+1, n));
}
}
क्या आप उन्हें सभी उत्पन्न नहीं कर सकते हैं, फिर उन सभी पर लूप करें और पहले 5 अक्षर लें? –
@ क्रिकेट_007 यह कई पुनरावृत्ति उत्पन्न करेगा। इसके अलावा, ओपी उन सभी को उत्पन्न करने का एक प्रभावी तरीका मांगता है। – dasblinkenlight
@dasblinkenlight - आह, "कुशल" शब्द को याद किया –