Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा प्रोग्राम: स्ट्रिंग के विशिष्ट क्रमपरिवर्तन प्रिंट करना

उदाहरण

import java.util.ArrayList; 

public class Demo { 
    static boolean is_present(String my_str, ArrayList rem) { 
        for (String str : rem) { 
            if (str.equals(my_str)) 
                return true; 
        } 
        return false; 
    } 

    static ArrayList distinct_pattern(String str) { 
        if (str.length() == 0) { 
            ArrayList base_Val = new ArrayList<>(); 
            base_Val.add(""); 
            return base_Val; 
        } 
        char ch = str.charAt(0); 
        String rem_str = str.substring(1); 
        ArrayList prev_str = distinct_pattern(rem_str); 
        ArrayList rem = new ArrayList<>(); 
        for (String my_str : prev_str) { 
            for (int i = 0; i <= my_str.length(); i++) { 
                String f = my_str.substring(0, i) + ch + my_str.substring(i); 
                if (!is_present(f, rem)) 
                    rem.add(f); 
            } 
        } 
        return rem; 
    } 

    public static void main(String[] args) { 
        String my_str = "mnqm"; 
        System.out.println("स्ट्रिंग के विशिष्ट क्रमपरिवर्तन हैं: "); 
        System.out.println(distinct_pattern(my_str)); 
    } 
}

आउटपुट

स्ट्रिंग के विशिष्ट क्रमपरिवर्तन हैं [mnqm, nmqm, nqmm, mqnm, qmnm, qnmm, mqmn, qmmn, mnmq, nmmq, mmnq, mmqn]

व्याख्या: Demo क्लास में 'is_present' नामक एक बूलियन फंक्शन है जो जांचता है कि स्ट्रिंग वास्तव में मौजूद है या नहीं। यह इस आधार पर true या false लौटाता है कि स्ट्रिंग में कुछ वर्ण हैं या नहीं। 'distinct_pattern' नामक एक अन्य फंक्शन एक ArrayList बनाता है।

'rem_str' नामक एक अन्य स्ट्रिंग परिभाषित की जाती है, जो स्ट्रिंग के सबस्ट्रिंग को संग्रहीत करती है। इस 'distinct_function' को 'rem_str' पास करके कॉल किया जाता है। इस तरह, स्ट्रिंग पर पुनरावृति की जाती है, और प्रत्येक वर्ण की स्थिति की जांच की जाती है, इससे पहले कि एक और विशिष्ट क्रमपरिवर्तन उत्पन्न हो। इस तरह, सभी डुप्लिकेट से बचा जाता है। अंत में, सभी अद्वितीय क्रमपरिवर्तन कंसोल पर प्रदर्शित होते हैं। मुख्य फंक्शन स्ट्रिंग को परिभाषित करता है, और इस स्ट्रिंग पर 'distinct_pattern' फंक्शन को कॉल किया जाता है। प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।

मुख्य बिंदु:

  • पुनरावर्ती दृष्टिकोण का उपयोग करके क्रमपरिवर्तन उत्पन्न किए जाते हैं
  • HashSet या ArrayList का उपयोग करके डुप्लिकेट हटाए जाते हैं
  • प्रत्येक वर्ण को स्ट्रिंग की हर संभव स्थिति में डाला जाता है
  1. - Java में ArrayList का उपयोग करके स्ट्रिंग के सभी क्रमपरिवर्तन (permutations) प्रिंट करें

    इस समस्या में, हमें आकार n का एक स्ट्रिंग दिया गया है और हमें स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करने हैं। लेकिन इस बार हमें ArrayList का उपयोग करके इस क्रमपरिवर्तन को प्रिंट करना है। आइए एक उदाहरण से समझते हैं - इनपुट: string = XYZ आउटपुट: XYZ, XZY, YXZ, YZX, ZXY, ZYX इस समस्या को हल करने के ल

  1. - स्ट्रिंग में स्वरों की गिनती के लिए Java प्रोग्राम

    मान लीजिए निम्नलिखित हमारा स्ट्रिंग है: String myStr = Jamie; वेरिएबल काउंट = 0 सेट करें, क्योंकि हम उसी वेरिएबल में स्वरों की गणना करेंगे। प्रत्येक कैरेक्टर के माध्यम से लूप करें और स्वरों की गिनती करें: for(char ch : myStr.toCharArray()) { ch = Character.toLowerCase(ch); if(ch == a || c

  1. पायथन प्रोग्राम: दी गई स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें पायथन प्रोग्राम: दी गई स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक स्ट्रिंग दी गई है, हमें स्ट्रिंग के सभी संभावित क्रमपरिवर्तन प्रदर्शित करने हैं। उदाहरण # रूपांतरण def toString(List): return .join(List) # क्रमपरिवर्तन def permute(a, l, r): if l == r: print(toString(a))