31 lines
898 B
C#
31 lines
898 B
C#
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace AdventOfCode.Core.Shared
|
|
{
|
|
|
|
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);
|
|
|
|
public static string GetAsString(byte[] bytes) => Encoding.UTF8.GetString(bytes).ReplaceLineEndings();
|
|
|
|
public static string[] GetAsStringArray(byte[] bytes) => GetAsString(bytes).Split(NewLine).ToArray();
|
|
|
|
private static string StripControlChars(string s)
|
|
{
|
|
return Regex.Replace(s, @"[^\x20-\x7F]", "");
|
|
}
|
|
}
|
|
}
|