কম্পিউটার

C++ এ অ্যানাগ্রামের ঘটনা গণনা করুন


আমাদের একটি টেক্সট স্ট্রীম এবং একটি শব্দ হিসাবে একটি ইনপুট দেওয়া হয়, এবং কাজ হল প্রদত্ত টেক্সট স্ট্রীমে শব্দের অ্যানাগ্রামের সংঘটনের গণনা খুঁজে বের করা। অ্যানাগ্রামগুলি একটি শব্দ থেকে অক্ষরগুলিকে পুনর্বিন্যাস করার মাধ্যমে তৈরি করা হয় যা একটি বিবৃতিতে "নিউ ইয়র্ক টাইমস" শব্দের অ্যানাগ্রামের মতো একটি ভিন্ন শব্দ বা বাক্যাংশে পরিণত হয় যা "বানররা লিখতে" হিসাবে গঠিত হতে পারে।

উদাহরণস্বরূপ

ইনপুট :স্ট্রিং স্ট্রিং-:“workitwrokoffowkr” শব্দ =“কাজ”

আউটপুট :স্ট্রিংটিতে অ্যানাগ্রামের সংঘটনের সংখ্যা হল:3

ব্যাখ্যা :"কাজ" শব্দের সম্ভাব্য অ্যানাগ্রামগুলি হল work,wrok, rowk, owkr, ইত্যাদি। প্রদত্ত স্ট্রিং-এ কাজের জন্য উপলব্ধ অ্যানাগ্রামগুলি হল work, wrok এবং owkr তাই গণনা হল 3।

ইনপুট :স্ট্রিং স্ট্রিং-:“expresshycool” শব্দ =“জেন”

আউটপুট :স্ট্রিংটিতে অ্যানাগ্রামের সংঘটনের সংখ্যা হল:0

ব্যাখ্যা :"জেন" শব্দের সম্ভাব্য অ্যানাগ্রামগুলি হল nez, ezn, enz, zne, nze, zen, ইত্যাদি৷ প্রদত্ত স্ট্রিংটিতে "জেন" শব্দের জন্য কোনও অ্যানাগ্রাম নেই তাই গণনাটি 0৷

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • আমাদের একটি অক্ষর স্ট্রিং (স্ট্রিম) এবং শব্দ (ডব্লিউ) দেওয়া হয়েছে যা countAna ফাংশনে পাস করা হয়েছে (stream,w) আরও প্রক্রিয়াকরণের জন্য।
  • ফাংশনের ভিতরে (countAna ) একটি গণনা পতাকা শুরু হয়
  • i=0 থেকে i <=(stream.length()) - (w.length()) পর্যন্ত একটি FOR লুপ শুরু করুন।
  • ফাংশনের ভিতরে (countAna ) ফাংশনটিকে কল করুন ArangeAna (w, stream.substring(i, i + (w.length()))) শব্দটি পাস করা এবং stream.substring(i, i + (w.length())) যা সাবস্ট্রিং তৈরি করে (শব্দের সমান দৈর্ঘ্যের ) প্রবাহ থেকে।
  • ফাংশনের ভিতরে ArarangeAna স্ট্রিংগুলি ক্যারেক্টার অ্যারেতে রূপান্তরিত হয় এবং সাজানো হয়
  • (অ্যারে।সমান (c1, c2)) তারপর জেনারেট করা সাবস্ট্রিং শব্দের সমান কিনা তা পরীক্ষা করে এবং সেই অনুযায়ী প্রতিক্রিয়া (সত্য/মিথ্যা) পাঠানো হয়।
  • গণনা পতাকা (countAna() এর ভিতরে প্রতিক্রিয়া সত্য হলে ) তারপর বৃদ্ধি করা হয়৷
  • প্রতিক্রিয়াটি তারপর main() পদ্ধতিতে ক্যাপচার করা হয় এবং আউটপুট প্রিন্ট করা হয়।

উদাহরণ

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++ প্রোগ্রামে পয়েন্টার ব্যবহার করে একটি স্ট্রিংয়ে স্বর গণনা করা

  2. C++ এ স্ট্রিংস্ট্রিম

  3. স্ট্রিং-এ একটি শব্দের উপস্থিতি গণনা করার জন্য C# প্রোগ্রাম

  4. পাইথনে স্ট্রিং-এ একটি অক্ষরের ঘটনা গণনা করুন