Vorgaben
- Der String enthält nur gültige Zahlen getrennt durch ein Leerzeichen und mindestens eine Zahl
- Ausgabe ist ein String mit der grössten und kleinsten Zahl
Beispiele
Eingabe | Ausgabe |
„1 2 3 4 5 6 7 8 9 10“ | „10 1“ |
„-100 99 45 0 1 354“ | „354 -100“ |
Meine erste Lösung
public static string HighAndLow(string numbers)
{
var sortedList = numbers.Split(" ")
.Select(x => Convert.ToDecimal(x))
.OrderByDescending(o => o);
return $"{sortedList.First()} {sortedList.Last()}";
}
Meine zweite optimierte Lösung
public static string HighAndLow(string numbers)
{
var sortedList = numbers.Split(" ").Select(int.Parse);
return $"{sortedList.Max()} {sortedList.Min()}";
}
Unit-Test
public void GetHighAndLowTest()
{
Assert.AreEqual("354 -100", Snippets.HighAndLow("-100 99 45 0 1 354"));
Assert.AreEqual("10 1", Snippets.HighAndLow("1 2 3 4 5 6 7 8 9 10"));
Assert.AreEqual("1 1", Snippets.HighAndLow("1"));
Assert.AreEqual("3002 -68", Snippets.HighAndLow("-68 3001 3 5 -5 " +
"42 3002 -1 0 0 -9 4 7 4 -4"));
Assert.AreEqual("42 -9", Snippets.HighAndLow("8 3 -5 42 -1 0 0 -9 4 " +
"7 4 -4"));
}