Skip to content

Instantly share code, notes, and snippets.

@fatagun
Created September 28, 2017 16:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fatagun/2469aa438eadee7c37f27c8e446696c9 to your computer and use it in GitHub Desktop.
Save fatagun/2469aa438eadee7c37f27c8e446696c9 to your computer and use it in GitHub Desktop.
public class UrlGenerator
{
private static readonly char[] letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".ToCharArray();
public static string ConvertToUrl(int number)
{
try
{
string shortenedUrl = string.Empty;
while (number > 0)
{
var remainder = number % letters.Length;
shortenedUrl += letters[remainder];
number = number / letters.Length;
}
var reverseResult = shortenedUrl.ToCharArray();
Array.Reverse(reverseResult);
string result = new string(reverseResult);
return result;
}
catch (Exception)
{
return string.Empty;
}
}
public static double ConvertToNumber(string url)
{
try
{
var chrs = url.ToCharArray();
var result = 0d;
for (int i = 0; i < chrs.Length; i++)
{
var number = Array.IndexOf(letters, chrs[i]);
var power = Math.Pow(letters.Length, chrs.Length - 1 - i);
result += number * power;
}
return result;
}
catch (Exception)
{
return 0;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment