omt Lab

Laboratory For Innovators

Menu

Skip to content
  • Home
  • Algorithms
  • Apache Velocity
  • Api
    • Search Lyrics API
    • Epub Reader Api
  • Applications
    • Pigeon
    • omt Slice
    • Search Lyrics
    • Chrome – MyNote
    • My Button
  • Core Java
  • Java 8
  • About
1
package com.omt.learn.leetcode.facebook;<br><br>import java.util.HashMap;<br>import java.util.Map;<br>import java.util.TreeMap;<br><br>public class IntegerToEnglishWord <strong>{<br></strong><strong>    <br></strong><strong>   <br></strong><strong>     <br></strong><strong>    <br></strong><strong>    </strong>public static void main(String args[])<strong>{<br></strong><strong>        </strong>System.out.println(getWord(<strong>44</strong>));<br>        System.out.println(getWord(<strong>1</strong>));<br>        System.out.println(getWord(<strong>123</strong>));<br>        System.out.println(getWord(<strong>12345</strong>));<br>        System.out.println(getWord(<strong>1234567</strong>));<br>        System.out.println(getWord(<strong>1234567891</strong>));<br>    <strong>}<br></strong><strong>    <br></strong><strong>    </strong>public static String getWord(int number)<strong>{<br></strong><strong>        </strong>String word = "";<br>        <br>        String numberString =  String.valueOf(number);<br>        <br>        if(numberString.length() &lt; <strong>3</strong>)<strong>{<br></strong><strong>            </strong>return getTwoCharsInteger(number);<br>        <strong>}</strong>else if(numberString.length() == <strong>3</strong>)<strong>{<br></strong><strong>            </strong>return getThreeCharsInteger(number);<br>        <strong>}<br></strong><strong>        <br></strong><strong>        </strong>String thousands = THOUSANDS_MAP.get(numberString.length());<br>        int partition = numberString.length() - PARTITION_THOUSANDS_MAP.get(thousands); <br>        String frontNumber = numberString.substring(<strong>0</strong>,partition);<br>        String backNumber = numberString.substring(partition,numberString.length());<br>        <br>        return getWord(Integer.parseInt(frontNumber))+" "+thousands+" "+getWord(Integer.parseInt(backNumber));<br>    <strong>}<br></strong><strong><br></strong><strong>    </strong>static Map&lt;Integer,String&gt; THOUSANDS_MAP = new TreeMap&lt;Integer,String&gt;()<strong>{<br></strong><strong>        {<br></strong><strong>            </strong>put(<strong>3</strong>,"Hundred");<br>            put(<strong>4</strong>,"Thousand");<br>            put(<strong>5</strong>,"Thousand");<br>            put(<strong>6</strong>,"Thousand");<br>            put(<strong>7</strong>,"Million");<br>            put(<strong>8</strong>,"Million");<br>            put(<strong>9</strong>,"Million");<br>            put(<strong>10</strong>,"Billion");<br>        <strong>}<br></strong><strong>    }</strong>;<br><br>    static Map&lt;String,Integer&gt; PARTITION_THOUSANDS_MAP = new TreeMap&lt;String,Integer&gt;()<strong>{<br></strong><strong>        {<br></strong><strong>            </strong>put("Hundred",<strong>2</strong>);<br>            put("Thousand",<strong>3</strong>);<br>            put("Million",<strong>6</strong>);<br>            put("Billion",<strong>9</strong>);<br>        <strong>}<br></strong><strong>    }</strong>;<br><br>    static Map&lt;Integer,String&gt; _1_TO_20_TENS = new TreeMap&lt;Integer,String&gt;()<strong>{<br></strong><strong>        {<br></strong><strong>            </strong>put(<strong>1</strong>,"One");<br>            put(<strong>2</strong>,"Two");<br>            put(<strong>3</strong>,"Three");<br>            put(<strong>4</strong>,"Four");<br>            put(<strong>5</strong>,"Five");<br>            put(<strong>6</strong>,"Six");<br>            put(<strong>7</strong>,"Seven");<br>            put(<strong>8</strong>,"Eight");<br>            put(<strong>9</strong>,"Nine");<br>            put(<strong>10</strong>,"Ten");<br>            put(<strong>11</strong>,"Eleven");<br>            put(<strong>12</strong>,"Twelve");<br>            put(<strong>13</strong>,"Thirteen");<br>            put(<strong>14</strong>,"Fourteen");<br>            put(<strong>15</strong>,"Fifteen");<br>            put(<strong>16</strong>,"Sixteen");<br>            put(<strong>17</strong>,"Seventeen");<br>            put(<strong>18</strong>,"Eighteen");<br>            put(<strong>19</strong>,"Nineteen");<br>            put(<strong>20</strong>,"Twenty");<br>            put(<strong>30</strong>,"Thirty");<br>            put(<strong>40</strong>,"Forty");<br>            put(<strong>50</strong>,"Fifty");<br>            put(<strong>60</strong>,"Sixty");<br>            put(<strong>70</strong>,"Seventy");<br>            put(<strong>80</strong>,"Eighty");<br>            put(<strong>90</strong>,"Ninety");<br>        <strong>}<br></strong><strong>    }</strong>;<br><br>    static String getTwoCharsInteger(int number)<strong>{<br></strong><strong>        </strong>if(_1_TO_20_TENS.containsKey(number))<strong>{<br></strong><strong>            </strong>return _1_TO_20_TENS.get(number);<br>        <strong>}<br></strong><strong><br></strong><strong>        </strong>return  getTwoCharsInteger((number/<strong>10</strong>)*<strong>10</strong>)+" "+getTwoCharsInteger(number%<strong>10</strong>);<br>    <strong>}<br></strong><strong><br></strong><strong>    </strong>static String getThreeCharsInteger(int number) <strong>{<br></strong><strong>        </strong>return _1_TO_20_TENS.get(number / <strong>100</strong>) +" "+THOUSANDS_MAP.get(<strong>3</strong>)+" "+ getTwoCharsInteger(number%<strong>100</strong>);<br>    <strong>}<br></strong><strong>    <br></strong><strong>}<br></strong>
May 17, 2018omt Algorithm, java

Post navigation

← Algorithm to find exact square root in java
Find cycle/loop in the graph – Find and Union with Path Compression →
Proudly powered by WordPress ~ Theme: Syntax by WordPress.com.