C# :: Aufgabe #380 :: Lösung #2

2 Lösungen Lösungen öffentlich
#380

Längster Substring (Teilzeichenfolge)

Anfänger - C# von JKooP - 10.04.2021 um 18:51 Uhr
Gegeben ist ein beliebig langer String (Zeichenkette) bestehend aus Kleinbuchstaben.
Ziel soll es sein, den längsten Substring (Teilzeichenfolge) herauszufinden,
der aus einem Buchstaben gebildet wird und aus mindestens 2 Zeichen besteht.

Schreibe eine Methode/Funktion, die sowohl die Länge als auch den Substrings selbst auf dem Bildschirm ausgibt.

Beispiele:
s1 = abcde
Länge: 0
Substring: "" -> keine Lösung, da kein Substring mit der Länge > 1

s2 = abccdec
Länge: 2
Substring: "cc"

s3 = "bbdddccaaa"
Länge: 3
Substring: "aaa"

Aufgabe 1:
Sind mehrere Substrings gleich lang, soll ein beliebiger ausgewählt werden.

Aufgabe 2:
Sind mehrere Substrings gleich lang, soll der des ersten Vorkommens ausgegeben werden.
zu s3:
Substring: "ddd"

Viel Spaß
#2
vote_ok
von JKooP (18090 Punkte) - 14.05.2021 um 08:17 Uhr
NET 5.x; C# 9.x; VS-2019
Quellcode ausblenden C#-Code
using System;
using System.Linq;
using System.Text.RegularExpressions;

var s = "bbdddccaaa";
var (length, substr) = LongestSubstring(s);
Console.WriteLine($"Länge: {length}, Substring: {substr}");

static (int length, string substr) LongestSubstring(string s) 
{ 
    var r = Regex.Matches(s, "(.)\\1*").OrderBy(x => -x.Length).ToList().FirstOrDefault();
    var l= r.Length;
    return l < 2 ? (0, "keine Lösung") : (l, r.ToString());
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben