Created
September 28, 2017 16:32
-
-
Save fatagun/2469aa438eadee7c37f27c8e446696c9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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