AdventOfCode/Advent Of Code Library/Shared/Answerable.cs
2022-12-15 22:56:10 +01:00

31 lines
908 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 => Environment.NewLine;
public abstract string GetAnswer(byte[] data);
internal static string GetAsString(byte[] bytes) => Encoding.UTF8.GetString(bytes).ReplaceLineEndings();
internal static string[] GetAsStringArray(byte[] bytes) => GetAsString(bytes).Split(NewLine).ToArray();
private static string StripControlChars(string s)
{
return Regex.Replace(s, @"[^\x20-\x7F]", "");
}
}
}