public class UrlShortener
{
public static readonly string Alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
public static readonly int Base = Alphabet.Length;
public static string Encode(int i)
{
if (i == 0) return Alphabet[0].ToString();
var s = string.Empty;
while (i > 0)
{
s += Alphabet[i % Base];
i = i / Base;
}
return string.Join(string.Empty, s.Reverse());
}
public static int Decode(string s)
{
var i = 0;
foreach (var c in s)
{
i = (i * Base) + Alphabet.IndexOf(c);
}
return i;
}
}
public class Program
{
public static void main()
{
// Insert URL to be shortened into database and get it's record ID
// e.g. "http://www.foo.bar" => 155885
// Encode 155885 which results in the string "dmkf"
// This is the parameter to your Url shortener
// e.g. "http://www.url.me/dmkf"
// Decode the parameter to get the original record ID
// Redirect the user to the URL represented by the record ID
}
}
Comments