Grrrr Ich habe C# und mehrdimensionale Arrays. Aus irgendeinem Grund, der aus einem C/C++ - Hintergrund kommt, ärgern sie mich wirklich.Wie kann man ein 26x2-Array definieren und dann LINQ in seinen Zeilen verwenden?
Also, wenn ich
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution
{
static void Main(String[] args)
{
int T = Int32.Parse(Console.ReadLine());
for(int t = 0; t < T; ++t)
{
string str = Console.ReadLine();
if(str.Length % 2 == 1)
{
Console.WriteLine(-1);
continue;
}
int n = str.Length/2;
// determine how many replacements s1 needs to be an anagram of s2
string s1 = str.Substring(0, n);
string s2 = str.Substring(n, n);
int[][] counter = new int[26][2];
int ascii_a = (int)'a';
for(int i = 0; i < n; ++i)
{
counter[(int)s1[i] - ascii_a][0] += 1;
counter[(int)s2[i] - ascii_a][1] += 1;
}
int count = counter.Select((pair => Math.Abs(pair[0] - pair[1]))).Sum();
Console.WriteLine(count);
}
}
}
laufen ich
solution.cs (22,42): Fehler CS0029: Kann nicht implizit Typ
int' to
int [] []‘Compilation fehlgeschlagen konvertieren: 1 Fehler, 0 Warnungen
Keine Ahnung warum.
Ich kann es ändern zu
int[,] counter = new int[26,2];
int ascii_a = (int)'a';
for(int i = 0; i < n; ++i)
{
counter[(int)s1[i] - ascii_a, 0] += 1;
counter[(int)s2[i] - ascii_a, 1] += 1;
}
int count = counter.Select((pair => Math.Abs(pair[0] - pair[1]))).Sum();
aber dann, natürlich, meine LINQ-Anweisung bricht.
'Select ((pair =>' -?. Warum zweiten '(' 'vor pair' In welcher Zeile Sie Fehler erhalten – Sinatr
@ user6048670 hinzugefügt meine Version von Antwort, die mit OP richtet tatsächlich – uTeisT