AdventOfCode/Advent Of Code Library/Shared/Answerable.cs
2022-12-08 13:20:39 +01:00

31 lines
910 B
C#

using System.Text;
namespace AdventOfCodeLibrary.Shared
{
using System.Text.RegularExpressions;
public abstract class Answerable
{
public abstract int Year { get; set; }
public abstract int Day { get; set; }
public abstract int Part { get; set; }
public string DefaultInputFile => $"../../../../Advent Of Code Library/{Year}/Day {Day:00}/day-{Day:00}-input.txt";
protected static string NewLine => "\n";
public abstract string GetAnswer(byte[] data);
internal static string GetAsString(byte[] bytes) => Encoding.UTF8.GetString(bytes);
internal static string[] GetAsStringArray(byte[] bytes) => Encoding.UTF8.GetString(bytes).Split(NewLine).Select(StripControlChars).ToArray();
private static string StripControlChars(string s)
{
return Regex.Replace(s, @"[^\x20-\x7F]", "");
}
}
}