मैं जावा में एक शब्द unscrambler बना रहा हूँ। अभी मेरे पास एक ऐसा प्रोग्राम है जो 3 या उससे अधिक अक्षरों वाले शब्द से चुने गए 3 अक्षरों के सभी पुनर्गठन मुद्रित कर सकता है (कोई दोहराना नहीं)।लूप के लिए नेस्टेड की परिवर्तनीय संख्या
[[एबीसी, अब्द, एसीबी, एसीडी, एशियाई विकास बैंक, एडीसी, बक, बुरा, बीसीए, बीसीडी, बीडीए, बीडीसी, टैक्सी, सीएडी: तो उदाहरण के लिए, यदि पैरामीटर ABCD है, यह इस प्रिंट होगा , सीबीए, सीबीआई, सीडीए, सीडीबी, डैब, डीएसी, डीबीए, डीबीसी, डीसीए, डीसीबी]]
मैं क्रमपरिवर्तन के साथ 2 डी सरणी सूची भर रहा हूं। अभी 2 डी सरणी के अंदर केवल एक सरणी है, जिसमें 3 अक्षरों के लिए क्रमपरिवर्तन शामिल हैं। मैं चाहता हूं कि 2 डी सरणी में शब्द की लंबाई पर रोककर 1 अक्षर, 2 अक्षरों, 3 अक्षरों, और इसी तरह की अनुमति के लिए सरणी हों। समस्या यह है कि मुझे इसे पूरा करने के लिए लूप के लिए नेस्टेड की एक चर संख्या की आवश्यकता है। 3 अक्षर क्रमपरिवर्तनों के लिए, मेरे पास 3 लूप के लिए घोंसला है। पैरामीटर में अक्षरों के माध्यम से प्रत्येक चक्र।
public static void printAllPermuations(String word)
{
int len = word.length();
ArrayList<String> lets = new ArrayList<String>();
//this array of letters allows for easier access
//so I don't have to keep substringing
for (int i = 0; i < len; i++)
{
lets.add(word.substring(i, i + 1));
}
ArrayList<ArrayList<String>> newWords = new ArrayList<ArrayList<String>>();
newWords.add(new ArrayList<String>());
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len; j++)
{
for (int k = 0; k < len; k++)
{
if (i != j && i != k && j != k)
//prevents repeats by making sure all indices are different
{
newWords.get(0).add(lets.get(i) + lets.get(j) + lets.get(k));
}
}
}
}
System.out.println(newWords);
}
मैंने अन्य पोस्टों को देखा है और मैंने सुना है कि रिकर्सन इसे हल कर सकता है। मुझे नहीं पता कि मैं इसे कैसे कार्यान्वित करूंगा। और मैंने कुछ जटिल समाधान भी देखे हैं जिन्हें मैं समझ नहीं पा रहा हूं। मैं सरलतम समाधान के लिए पूछ रहा हूं, चाहे इसमें रिकर्सन शामिल है या नहीं।
अगर यह हो रहा है गलत। लूप फंक्शन में कोई जम्मू-कश्मीर स्थानीय चर नहीं हैं() – Algorithmist
वूप्स को थोड़ी प्रतिलिपि/पेस्ट खुश मिला। पूंछ रिकर्सन ऑप्टिमाइज़ेशन (जावा 8 के लिए) के लिए यह लाभ भी होगा या क्या इसे एक और स्तर पर जाना चाहिए? – DrYap
आपने कोड 'newWords.get (...) लिखा है। (...) जोड़ें;' जोड़ें() भाग में, मुझे अक्षरों का संग्रह होना होगा। मुझे नहीं पता कि सभी पत्रों को कैसे इकट्ठा करना है। क्या कोई मेरी यह मदद कर सकता है? – Muuz