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

C++ में विपर्यय की घटनाओं की गणना करें

हमें एक टेक्स्ट स्ट्रीम और एक शब्द के रूप में एक इनपुट दिया जाता है, और कार्य दिए गए टेक्स्ट स्ट्रीम में शब्द के विपर्यय की घटनाओं की संख्या का पता लगाना है। एनाग्राम एक शब्द से अक्षरों को पुनर्व्यवस्थित करके उत्पन्न होते हैं जो एक अलग शब्द या वाक्यांश के रूप में समाप्त होता है जैसे "न्यूयॉर्क टाइम्स" एक बयान में शब्दों के विपर्यय को "मंकी राइट" के रूप में बनाया जा सकता है।

उदाहरण के लिए

इनपुट :स्ट्रिंग स्ट्रिंग-:"workitwrokoffowkr" शब्द ="काम"

आउटपुट :स्ट्रिंग में विपर्यय की घटनाओं की संख्या हैं:3

स्पष्टीकरण :शब्द "काम" के लिए संभावित विपर्यय कार्य, रौक, रोक, ओवक्र, आदि हैं। दिए गए स्ट्रिंग में काम के लिए उपलब्ध विपर्यय काम, व्रोक और ओवक्र हैं इसलिए गिनती 3 है।

इनपुट :स्ट्रिंग स्ट्रिंग-:"एक्सप्रेसहाइकूल" शब्द ="ज़ेन"

आउटपुट :स्ट्रिंग में विपर्यय की घटनाओं की संख्या हैं:0

स्पष्टीकरण :शब्द "ज़ेन" के लिए संभावित विपर्यय nez, ezn, enz, zne, nze, zen, आदि हैं। दिए गए स्ट्रिंग में "ज़ेन" शब्द के लिए कोई विपर्यय उपलब्ध नहीं है इसलिए गिनती 0 है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हमें एक कैरेक्टर स्ट्रिंग (स्ट्रीम) और वर्ड (w) दिया जाता है जो फंक्शन countAna में पास होता है। (स्ट्रीम, डब्ल्यू) आगे की प्रक्रिया के लिए।
  • समारोह के अंदर(गिनती करना ) एक काउंट फ्लैग इनिशियलाइज़ किया जाता है
  • I=0 से i <=(stream.length()) - (w.length ()) के लिए FOR लूप प्रारंभ करें।
  • समारोह के अंदर(गिनती करना ) फ़ंक्शन को कॉल करें व्यवस्था करना (w, stream.substring(i, i + (w.length ()))) शब्द पास करना और stream.substring(i, i + (w.length ())) जो सबस्ट्रिंग उत्पन्न करता है (शब्द के बराबर लंबाई का) ) धारा से।
  • समारोह के अंदर अरेंजएना स्ट्रिंग्स को कैरेक्टर एरे में बदल दिया जाता है और सॉर्ट किया जाता है
  • (सरणी।बराबर (c1, c2)) फिर जांचता है कि उत्पन्न सबस्ट्रिंग शब्द के बराबर है और प्रतिक्रिया (सत्य/गलत) तदनुसार भेजी जाती है।
  • गिनती ध्वज (countAna() के अंदर) ) फिर वृद्धि की जाती है यदि प्रतिक्रिया सत्य है।
  • प्रतिक्रिया को मुख्य () विधि में कैप्चर किया जाता है और आउटपुट मुद्रित किया जाता है।

उदाहरण

import java.io.*;
import java.util.*;

public class testClass {
   static boolean arrangeAna(String s1, String s2) {
      char[] c1 = s1.toCharArray();
      char[] c2 = s2.toCharArray();
      Arrays.sort(c1);
      Arrays.sort(c2);
      if (Arrays.equals(c1, c2)) {
         return true;
      } else {
         return false;
      }
   }
   static int countAna(String stream, String w) {
      int count = 0;
      for (int i = 0; i <= (stream.length()) - (w.length()); i++) {
         if (arrangeAna(w, stream.substring(i, i + (w.length())))) {
            count++;
         }
      }
      return count;
   }

   public static void main(String args[]) {
      Scanner scan = new Scanner(System.in);
      String stream = scan.next(); //workitwrokoffowkr
      String w = scan.next(); //work
      System.out.print(countAna(stream, w));
   }
}

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

आउटपुट

Count of occurrences of anagram in the string are: 3

  1. सी ++ में स्ट्रिंगस्ट्रीम

    यहां हम स्ट्रिंग स्ट्रीम को C++ में देखेंगे। स्ट्रिंग स्ट्रीम एक स्ट्रिंग ऑब्जेक्ट को एक स्ट्रिंग के साथ जोड़ती है। इसका उपयोग करके हम स्ट्रिंग से पढ़ सकते हैं जैसे कि यह सिने जैसी धारा हो। स्ट्रिंगस्ट्रीम के अलग-अलग तरीके हैं। ये नीचे की तरह हैं - साफ़ करें (): स्ट्रीम साफ़ करने के लिए उपयोग किया

  1. सी # प्रोग्राम स्ट्रिंग में किसी शब्द की घटनाओं को गिनने के लिए

    पहले स्ट्रिंग सेट करें - string str = "Hello World! Hello!"; अब हैलो शब्द के बार-बार आने के लिए स्ट्रिंग की जाँच करें और - . के माध्यम से लूप करें while ((a = str1.IndexOf(pattern, a)) != -1) {    a += pattern.Length;    count++; } उदाहरण आप स्ट्रिंग में किसी शब्द की ब

  1. पायथन में स्ट्रिंग में किसी वर्ण की घटनाओं की गणना करें

    हमें एक स्ट्रिंग और एक चरित्र दिया जाता है। हम यह पता लगाना चाहते हैं कि दिए गए स्ट्रिंग में दिए गए वर्ण को कितनी बार दोहराया जाता है। रेंज और लेन के साथ हम स्ट्रिंग में मौजूद प्रत्येक वर्ण के साथ वर्ण से मेल खाने के लिए लूप के लिए डिज़ाइन करते हैं जिसे इंडेक्स का उपयोग करके एक्सेस किया जाता है। रे