中级农民
- 积分
- 239
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2021-6-10
- 最后登录
- 1970-1-1
|
我顺便给个273 和 68 的代码吧. 你们自行比较这个长度
68:
-
- let rst = [];
- let [tlen,stack] = [0,[]];
- while(words.length>0){
- let w = words.shift();
- if(tlen+w.length>maxWidth){
- let p=0;
- stack[stack.length-1]=stack[stack.length-1].trim();
- while(tlen+1<=maxWidth+1){
- if(p>=stack.length-1) p=0;
- stack[p]+=' ';
- tlen++;
- p++;
- }
- rst.push(stack.join(''));
- stack=[];
- tlen=0;
- }
- stack.push(w+' ');
- tlen+=w.length+1;
- }
- if(stack.length>0){
- stack[stack.length-1]=stack[stack.length-1].trim();
- tlen--;
- while(tlen+1<=maxWidth){
- stack.push(' ');
- tlen++;
- }
- rst.push(stack.join(''));
- }
- return rst;
复制代码
273:
- if(num==0) return 'Zero'
- num+='';
- var dic=[
- ' Zero',
- ' One',
- ' Two',
- ' Three',
- ' Four',
- ' Five',
- ' Six',
- ' Seven',
- ' Eight',
- ' Nine',
- ' Ten',
- ' Eleven',
- ' Twelve',
- ' Thirteen',
- ' Fourteen',
- ' Fifteen',
- ' Sixteen',
- ' Seventeen',
- ' Eighteen',
- ' Nineteen',
- ];
- var breaks={
- 1:' Thousand',
- 2:' Million',
- 3:' Billion'
- };
- var teens={
- 2:' Twenty',
- 3:' Thirty',
- 4:' Forty',
- 5:' Fifty',
- 6:' Sixty',
- 7:' Seventy',
- 8:' Eighty',
- 9:' Ninety',
- }
- num= splitWords(num.split(''));
- return num.reduce((a,v,i)=>{
- return convert(v,i)+a;
- },'').trim();
- function convert(str,level){
- var rst = '';
- if(str.length>2){
- if(str[0]>0){
- rst+=dic[str[0]]+' Hundred';
- }
- str.shift();
- }
- if(str.length>1){
- if(str[0]>0){
- if(str[0]>1){
- rst+=teens[str[0]];
- }else{
- str[1]=str[0]+str[1];
- }
- }
- str.shift();
- }
- if(str[0]>0 ){
- rst+=dic[str[0]];
- }
-
- return rst+((rst.length>0 && level>=1)?breaks[level]:'');
- }
- function splitWords(s){
- var rst = [];
- for(var i = s.length; i>0; i-=3){
- rst.push(s.slice(((i-3)<0?0:(i-3)),i));
- }
- return rst;
- }
复制代码 |
|