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

C# में स्ट्रिंग में प्रत्येक कैरेक्टर की घटनाओं की गिनती

स्ट्रिंग में प्रत्येक कैरेक्टर की आवृत्ति (फ्रीक्वेंसी) गिनने के लिए हम प्रत्येक अद्वितीय कैरेक्टर के लिए उसकी घटनाएं गिनते हैं।

उदाहरण: क्रमिक दृष्टिकोण

using System;

public class Demo {
    public static void Main() {
        string str = "Website";
        Console.WriteLine("String: " + str);

        while (str.Length > 0) {
            Console.Write(str[0] + " = ");
            int count = 0;

            for (int j = 0; j < str.Length; j++) {
                if (str[0] == str[j]) {
                    count++;
                }
            }

            Console.WriteLine(count);

            // प्रोसेस किए गए कैरेक्टर को हटा दें
            str = str.Replace(str[0].ToString(), string.Empty);
        }
        Console.ReadLine();
    }
}

आउटपुट

String: Website
W = 1
e = 2
b = 1
s = 1
i = 1
t = 1

बेहतर दृष्टिकोण: Dictionary का उपयोग (O(n))

using System;
using System.Collections.Generic;

string str = "Website";
var freq = new Dictionary();

foreach (char c in str) {
    if (freq.ContainsKey(c))
        freq[c]++;
    else
        freq[c] = 1;
}

foreach (var kvp in freq) {
    Console.WriteLine($"{kvp.Key} = {kvp.Value}");
}

LINQ GroupBy के साथ (सबसे संक्षिप्त)

using System.Linq;

var freq = str.GroupBy(c => c)
              .ToDictionary(g => g.Key, g => g.Count());

// या सीधे प्रिंट
foreach (var g in str.GroupBy(c => c)) {
    Console.WriteLine($"{g.Key} = {g.Count()}");
}

सरणी-आधारित (केवल ASCII के लिए, सबसे तेज)

int[] counts = new int[256]; // ASCII के लिए
foreach (char c in str) {
    counts[c]++;
}

for (int i = 0; i < 256; i++) {
    if (counts[i] > 0)
        Console.WriteLine($"{(char)i} = {counts[i]}");
}

केस-इनसेंसिटिव गिनती

var freq = str.ToLower()
              .GroupBy(c => c)
              .ToDictionary(g => g.Key, g => g.Count());

मुख्य बिंदु

  • मूल दृष्टिकोण O(n²) है - प्रत्येक अद्वितीय कैरेक्टर के लिए पूरी स्ट्रिंग स्कैन करता है।
  • Dictionary या GroupBy O(n) है - बड़े स्ट्रिंग्स के लिए बहुत तेज।
  • Replace हर बार नई स्ट्रिंग बनाता है - मेमोरी अक्षम।
  • यूनिकोड स्ट्रिंग्स के लिए Dictionary/GroupBy आवश्यक है (सरणी 65536+ आकार की होगी)।
  1. - JavaScript में स्ट्रिंग में किसी वर्ण की घटनाओं की संख्या कैसे गिनें?

    स्ट्रिंग में किसी वर्ण की घटनाओं की संख्या गिनने के लिए, निम्न कोड चलाकर देखें - उदाहरण <!DOCTYPE html> <html>    <body>       <script>          function displayCount() {             setTimeout(

  1. Android में स्ट्रिंग के प्रत्येक कैरेक्टर की घटनाओं को कैसे गिनें? Android में स्ट्रिंग के प्रत्येक कैरेक्टर की घटनाओं को कैसे गिनें?

    स्ट्रिंग में प्रत्येक कैरेक्टर की घटनाएं गिनना यह उदाहरण दर्शाता है कि Android में स्ट्रिंग में प्रत्येक कैरेक्टर की घटनाओं (occurrences) को कैसे गिना जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं और प्रोजेक्ट बनाएं। चरण 2: लेआउट फ़ाइल (res/layout/activity_main.

  1. एक्सेल मास्टर करें: स्ट्रिंग और रेंज में वर्ण या शब्द गिनें जल्दी एक्सेल मास्टर करें: स्ट्रिंग और रेंज में वर्ण या शब्द गिनें जल्दी

    इस ट्यूटोरियल में, हम एक विशेष स्ट्रिंग और एक्सेल में स्ट्रिंग रेंज में एक वर्ण या शब्द की घटनाओं की गणना पर चर्चा करेंगे। अक्सर, हमें एक सेल में या बड़ी मात्रा में डेटा वाले डेटा रेंज में वर्ण की आवृत्ति की गणना करनी होती है। इसलिए, इस गिनती को आसान बनाने के लिए, हम इस लेख में कुछ आसानी से उपयोग हो