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

C# में स्ट्रिंग के सभी सबस्ट्रिंग्स खोजना

किसी स्ट्रिंग के सभी संभावित सबस्ट्रिंग्स खोजने के लिए हम नेस्टेड लूप्स का उपयोग करते हैं: बाहरी लूप सबस्ट्रिंग की लंबाई नियंत्रित करता है, आंतरिक लूप शुरुआती स्थिति।

उदाहरण

using System;

class Demo {
    static void Main() {
        string str = "xyz";

        // लंबाई 1 से str.Length-1 तक
        for (int len = 1; len < str.Length; len++) {
            // सभी संभावित शुरुआती स्थितियां
            for (int start = 0; start <= str.Length - len; start++) {
                string substr = str.Substring(start, len);
                Console.WriteLine(substr);
            }
        }
    }
}

आउटपुट

x
y
z
xy
yz

व्याख्या (xyz के लिए)

लंबाई शुरुआत सबस्ट्रिंग
1 0 x
1 1 y
1 2 z
2 0 xy
2 1 yz

नोट: पूरी लंबाई के सबस्ट्रिंग्स

उपरोक्त कोड लंबाई str.Length के सबस्ट्रिंग्स को शामिल नहीं करता (यानी पूरी स्ट्रिंग)। यदि आप पूरी स्ट्रिंग भी चाहते हैं:

for (int len = 1; len <= str.Length; len++)  // < के बजाय <=
    for (int start = 0; start <= str.Length - len; start++)
        Console.WriteLine(str.Substring(start, len));

सबस्ट्रिंग्स की कुल संख्या

लंबाई n की स्ट्रिंग के लिए: n(n+1)/2 सबस्ट्रिंग्स होते हैं।

  • "xyz" (n=3): 3×4/2 = 6 सबस्ट्रिंग्स (x, y, z, xy, yz, xyz)
  • "abcd" (n=4): 4×5/2 = 10 सबस्ट्रिंग्स

LINQ के साथ (फंक्शनल शैली)

using System.Linq;

var substrings = Enumerable.Range(1, str.Length)
    .SelectMany(len => Enumerable.Range(0, str.Length - len + 1)
        .Select(start => str.Substring(start, len)));

उपयोग केस

  • पैटर्न मिलान/खोज एल्गोरिदम
  • DNA अनुक्रम विश्लेषण
  • स्ट्रिंग प्रोसेसिंग प्रतियोगिताएं
  • सभी संभावित उप-अनुक्रम उत्पन्न करना
  1. - पायथन प्रोग्राम - K विशिष्ट वर्णों वाले N-आकार के सबस्ट्रिंग खोजें

    जब K विशिष्ट वर्णों वाले N आकार के सबस्ट्रिंग खोजने की आवश्यकता होती है, तो एक विधि परिभाषित की जाती है जो तीन पैरामीटर लेती है और आवश्यक स्ट्रिंग वापस करने के लिए if कंडीशन का उपयोग करती है। उदाहरण नीचे इसका प्रदर्शन दिया गया है: def generate_my_string(string_size, substring_size, distinct_chars):

  1. - पायथन में स्ट्रिंग S के सभी एनाग्राम्स के T में शुरुआती इंडेक्स ढूंढने का प्रोग्राम

    मान लीजिए हमारे पास दो स्ट्रिंग्स S और T हैं, हमें T में S के सभी एनाग्राम्स के शुरुआती इंडेक्स ढूंढने हैं। स्ट्रिंग्स में केवल लोअरकेस अक्षर होते हैं और दोनों स्ट्रिंग्स S और T की लंबाई 20 और 100 से अधिक नहीं होगी। तो, अगर इनपुट है S = cab T = bcabxabc, तो आउटपुट [0, 1, 5] होगा, क्योंकि सबस्ट्रिं

  1. - Python प्रोग्राम स्ट्रिंग में सभी डुप्लीकेट कैरेक्टर खोजने के लिए

    इस ट्यूटोरियल में, हम सीखने जा रहे हैं कि स्ट्रिंग में सभी डुप्लीकेट मान कैसे खोजें। हम इसे Python में विभिन्न तरीकों से कर सकते हैं। आइए उन्हें एक-एक करके एक्सप्लोर करें।हम जो प्रोग्राम लिखने जा रहे हैं उसका उद्देश्य स्ट्रिंग में मौजूद डुप्लीकेट कैरेक्टर ढूंढना है। उदाहरण के लिए, हमारे पास एक स्ट्र