Number To Text
Given is a n number. Convert that to Text string
Example:
Input: 123
Output: "One Hundred Twenty Three"
Solutions
public class NumberToText
{
private static string[] unitsMap = { "Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen" };
private static string[] tensMap = { "Zero", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety" };
public static string ConvertNumberToText(int number)
{
if (number == 0)
return unitsMap[0];
if (number < 20)
return unitsMap[number];
if (number < 100)
return tensMap[number / 10] + ((number % 10 > 0) ? " " + ConvertNumberToText(number % 10) : "");
if (number < 1000)
return unitsMap[number / 100] + " Hundred" + ((number % 100 > 0) ? " " + ConvertNumberToText(number % 100) : "");
if (number < 100000)
return ConvertNumberToText(number / 1000) + " Thousand" + ((number % 1000 > 0) ? " " + ConvertNumberToText(number % 1000) : "");
return ConvertNumberToText(number / 100000) + " Lac" + ((number % 100000 > 0) ? " " + ConvertNumberToText(number % 100000) : "");
}
}
Time complexity: O(n log n)
Space complexity: O(n)
Last updated