2016-11-29 1 views
-4

I eine Zeile wie diese: aabbbabaabb I-Code, um diese aus zu drucken: 2a 3b 1a 1b 2a 2bZählung Vorkommen der Werte in einer Zeichenfolge Zeile

Wie zu tun, dass in C#

EDIT Ich brauche die Werte, um so gezählt zu werden: es gibt 2 von a, dann 3 von b, dann 1 von a, dann 1 von b, dann 2 von a, dann 2 von b. Ich muss die Vorkommen von a und b insgesamt nicht zählen.

Ich lese eine Matrix, Wert für Wert diagonal: Wenn ich Matrix wie dieses:

a a b a 
a b a b 
a b b a 

ich es geschafft Matrix aus der rechten unteren Ecke zu lesen - und Werte in den Reihen zu setzen:

1row: a 
2row: bb 
3row: baa 
4row: bba 
5row: aa 
6row: a 

Aber ich muss dies wie folgt aussehen:

1row: 1a 
2row: 2b 
3row: 1b2a 
4row: 2b1a 
5row: 2a 
6row: 1a 
+4

C# und php? Was hast du probiert? –

+0

Was sind Ihre Anforderungen? Wie, unter welchen Bedingungen wird '2a 3b 1a 2b 2a 2b' erstellt? – Nytrix

+0

es wird angenommen, die Vorkommen so zu zählen: es gibt 2 von a, dann 3 von b dann 1a, dann 2 von b ... – user2974944

Antwort

1

Hier ist ein RegEx-Ansatz

string input = "aabbbabaabb"; 
string result = string.Concat(Regex.Matches(input, @"(.)\1*", RegexOptions.None) 
         .Cast<Match>() 
         .Select(x => string.Concat(x.Length, x.Value.First()))); 
+0

ja ist es, tnx sowieso. – user2974944

Verwandte Themen