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]", ""); } } }