C# Exercise: Regular Expressions -4.*Star Enigma
здравейте,имате ли идея къде е пропуска в решението - 80т.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace regex_demos
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
Dictionary<string, List<string>> negativPlanets = new Dictionary<string, List<string>> { { "A", new List<string>() },{ "D", new List<string>() } };
for (int i = 0; i < n; i++)
{
string command = Console.ReadLine();
MatchCollection symbols = Regex.Matches(command, @"[starSTAR]");
StringBuilder sb = new StringBuilder();
foreach(char symbol in command)
{
sb.Append((char)(symbol - symbols.Count));
}
string command1 = sb.ToString();
string patern = @"@([a-zA-z]+)[^@|:>-]*:\d+[^@|:>-]*!([AD])![^@|:>-]*->\d+";
Match element = Regex.Match(command1, patern);
if (element.Success)
{
string planet = element.Groups[1].Value.ToString();//за подсигуряване тостринг
string command2 = element.Groups[2].Value.ToString();
negativPlanets[command2].Add(planet);
}
}
foreach (var planWar in negativPlanets)
{
string s = "Destroyed";
if (planWar.Key == "A")
{
s = "Attacked".ToString();
}
Console.WriteLine($"{s} planets: {planWar.Value.Count}");
foreach (string planetWar in planWar.Value.OrderBy(x => x))
{
Console.WriteLine("-> " + planetWar);
}
}
}
}
}
един символ обърква патерна и трябва "!" вместо "|"
може ли да се използва Select() или нещо друго вместо някой от циклите
може да се използва Select() вместо цикли
int health = nameDemon.Select(x =>(int)char.Parse(x.ToString())).Sum();
double damage = digits.Select(x =>double.Parse(x.ToString())).Sum();
Time: 0.093 s