myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Beliebige doppelte Werte aus string filtern
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Beliebige doppelte Werte aus string filtern

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
grubewol grubewol ist männlich
myCSharp.de-Mitglied

Dabei seit: 29.08.2019
Beiträge: 1


grubewol ist offline

Beliebige doppelte Werte aus string filtern

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,
ich hab jetzt schon lange gesucht und finde keine Lösung im Netz
Folgendes Problem ich habe zum Beispiel einen String der Lautet "aabndmggmvndaasdfsdf"
hier kommt das aa doppelt vor und gg nur einmal.

wie kann ich harausfinden wie oft ein doppelter wert vorkommt? also dass dann auf der konsolo sowas wie: aa kommt 2 mal vor
gg kommt 1 mal vor

im Voraus herzlichen Dank für eure Hilfe
29.08.2019 18:08 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
gfoidl gfoidl ist männlich
myCSharp.de-Team

avatar-2894.jpg


Dabei seit: 07.06.2009
Beiträge: 6.594
Entwicklungsumgebung: VS 2019
Herkunft: Waidring


gfoidl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo grubewol,

Zitat:
ein doppelter wert

Meinst du damit explizit zwei hinteranderfolgende gleiche Zeichen?

Das könnte ganz naiv so gelöst werden:

C#-Code:
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Dictionary<string, int> counts = GetDoubledCharsCount("aabndmggmvndaasdfsdf");

            Console.WriteLine("Group\tCount");
            foreach (var kvp in counts.OrderByDescending(k => k.Value))
            {
                Console.WriteLine($"{kvp.Key}\t{kvp.Value}");
            }
        }

        private static Dictionary<string, int> GetDoubledCharsCount(string text)
        {
            var counts = new Dictionary<string, int>();

            for (int i = 1; i < text.Length; ++i)
            {
                if (text[i] == text[i - 1])
                {
                    string key = text.Substring(i - 1, 2);

                    if (counts.TryGetValue(key, out int count))
                    {
                        counts[key] = count + 1;
                    }
                    else
                    {
                        counts.Add(key, 1);
                    }
                }
            }

            return counts;
        }
    }
}

Die Aufgabe verallgemeinert auf beliebige Längen -->  Longest common subsequence problem

mfG Gü
29.08.2019 18:56 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Monat.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 18.10.2019 08:34