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

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


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

तो, अगर इनपुट है S = "cab" T = "bcabxabc", तो आउटपुट [0, 1, 5] होगा, क्योंकि सबस्ट्रिंग्स "bca", "cab" और "abc" हैं।

एल्गोरिदम

  • एक मैप m परिभाषित करें, n := s का आकार, left := 0, right := 0, counter := p का आकार सेट करें
  • एक ऐरे ans परिभाषित करें
  • p में कैरेक्टर्स की फ्रीक्वेंसी को मैप m में स्टोर करें
  • right := 0 से n-1 तक
    • अगर m में s[right] है और m[s[right]] नॉन-जीरो है, तो m[s[right]] को 1 से घटाएं, counter को 1 से घटाएं और अगर counter = 0 है, तो left को ans में डालें
    • अन्यथा
      • जब तक left < right
        • अगर s[left] m में मौजूद नहीं है, तो counter को 1 बढ़ाएं, और m[s[left]] को 1 बढ़ाएं
        • left को 1 बढ़ाएं
        • अगर m में s[right] है और m[s[right]] नॉन-जीरो है, तो right को 1 घटाएं, और लूप से बाहर निकलें
      • अगर m में s[left] नहीं है, तो left := right + 1 सेट करें
  • ans लौटाएं

इम्प्लीमेंटेशन (C++ में)


#include 
using namespace std;

void print_vector(vector v){
    cout << "[";
    for(int i = 0; i findAnagrams(string s, string p) {
        map m;
        int n = s.size();
        int left = 0, right = 0;
        int counter = p.size();
        vector ans;
        for(int i = 0; i < p.size(); i++) m[p[i]]++;
        for(int right = 0; right < n; right++){
            if(m.find(s[right]) != m.end() && m[s[right]]){
                m[s[right]]--;
                counter--;
                if(counter == 0)ans.push_back(left);
            } else {
                while(left

इनपुट


"bcabxabc", "cab"

आउटपुट


[0, 1, 5, ]
  1. पायथन में दिए गए इंडेक्स के साथ स्ट्रिंग को शफल करने का प्रोग्राम पायथन में दिए गए इंडेक्स के साथ स्ट्रिंग को शफल करने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s और इंडेक्स की एक सूची ind है, वे समान लंबाई के हैं। स्ट्रिंग s को इस तरह शफल किया जाएगा कि स्थिति i पर मौजूद वर्ण, फाइनल स्ट्रिंग में indices[i] पर चला जाए। हमें फाइनल स्ट्रिंग ढूंढनी है। उदाहरण के लिए, यदि इनपुट s = ktoalak, ind = [0,5,1,6,2,4,3] है, तो आउटपुट kolk

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

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

  1. - पायथन प्रोग्राम: स्ट्रिंग में मिरर कैरेक्टर्स खोजना

    एक यूजर इनपुट स्ट्रिंग और पोजिशन दी गई है, उस पोजिशन से हमें स्ट्रिंग की लंबाई तक अल्फाबेटिकल ऑर्डर में कैरेक्टर्स को मिरर करना है। इस ऑपरेशन में, हम a को z में, b को y में, c को x में, d को w में बदलते हैं और इसी तरह, यानी पहला कैरेक्टर लास्ट बन जाता है और इसी तरह।Input: p = 3 Input string = python