Integer to English Words
来源:互联网 发布:手机淘宝聊天记录删除 编辑:程序博客网 时间:2024/06/05 21:23
题目描述:
Convert a non-negative integer to its english words representation. Given input is guaranteed to be less than 231 - 1.
For example,
123 -> "One Hundred Twenty Three"12345 -> "Twelve Thousand Three Hundred Forty Five"1234567 -> "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"
这个题难度没啥难度,就是考细节,各种空格问题。
public class Solution { public String numberToWords(int num) {if(num==0)return "Zero"; StringBuilder sb=new StringBuilder(); String str=String.valueOf(num); int n=0; while(num>0){ n++; num/=10; } int[] a=new int[(n-1)/3+1]; int firstLen=(n-1)%3+1; a[0]=Integer.parseInt(str.substring(0, firstLen)); for(int i=1;i<a.length;i++){ a[i]=Integer.parseInt(str.substring(firstLen, firstLen+3)); firstLen+=3; } for(int i=0;i<a.length;i++){ sb.insert(0, getNumberStr(a[a.length-1-i],i,a.length)); } return sb.toString(); }public String getNumberStr(int num, int k ,int len) {String[] strs1=new String[]{"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};String[] strs2=new String[]{"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};String[] strs3=new String[]{"Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"};StringBuilder sb=new StringBuilder();//当num==0时直接返回""if(num==0)return sb.toString(); //第一个三位数分组前面没有空格,后面的三位数分组前面有空格if(k<len-1)sb.append(" ");int hundred =num/100;if(hundred>0) {sb.append(strs1[hundred-1]).append(" Hundred");if(num%100!=0)sb.append(" ");}int ten =num/10%10;//十位数分三种情况讨论if(ten==0){int one=num%10;if(one>0)sb.append(strs1[num%10-1]);}if(ten==1){sb.append(strs2[num%10]);}if(ten>1){sb.append(strs3[ten-2]);int one=num%10;if(one!=0)sb.append(" "+strs1[num%10-1]);}switch (k) {case 1:sb.append(" Thousand");break;case 2:sb.append(" Million");break;case 3:sb.append(" Billion");break;default:break;}return sb.toString();}}
0 0
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- Integer to English Words
- leetcode - Integer to English Words
- [leetcode] Integer to English Words
- Integer to English Words -- leetcode
- LeetCode273:Integer to English Words
- 中国民航局v1.0.1官方iPhone版
- DRV8301芯片调试总结
- C++中的new与delete
- Adb connection Error:远程主机强迫关闭了一个现有的连接。
- yershop商城系统Thinkphp开发(四)——微信篇4:认证服务号Thinkphp微信支付
- Integer to English Words
- iOS中创建文件目录时候存储路径的一些注意点
- 配置数据库连接池使用之JNDI的方式
- 基于ATL开发ActiveX控件(第一节,简单的Hello world)
- Android Activity生命周期详解
- 找不到"javax.servlet.annotation.WebServlet"解决方法
- IOS不支持中文斜体
- android 自定义控件 简易时间轴
- iOS开发网络篇—Socket编程