原题目

Your task is to make a function that can take any non-negative integer as a argument and return it with it's digits in descending order. Essentially, rearrange the digits to create the highest possible number.

Examples:
Input: 21445 Output: 54421
Input: 145263 Output: 654321
Input: 1254859723 Output: 9875543221

题目:将一个正整数里的数字按照降序排列。

思路:

  1. 将数字转化为字符串

  2. 将字符串变成数组

  3. 将数组中的元素按照降序排列,然后拼接成字符串

  4. 将字符串转化为数字

My Solution:

function descendingOrder(n){var str = n.toString();str = str.split('').sort(function(x, y) {return y-x});return parseInt(str.join(''))
}

Clever Solution

function descendingOrder(n){return parseInt(String(n).split('').sort().reverse().join(''))
}

对比

1. 将数字转化为字符串

(1) .toString([radix]) 可以将除了 nullundefined的对象都转换为字符串

  • radix: 可选参数,表示进制

var a;a.toString();
// Uncaught TypeError: Cannot read property 'toString' of undefineda = null;
a.toString();
// Uncaught TypeError: Cannot read property 'toString' of nulla = 10;
a.toString(2);    // "1010"a = {name: 'Alice', age: '1'};
a.toString();    // "[object Object]"

(2) String() 可以将 nullundefined 转换为字符串,但是没法转进制字符串

var b;
String(b);    // "undefined"b = null;
String(b);    // "null"b = {name: 'Alice', age: '1'};
String(b);    // "[object Object]"

2. 数组降序

(1) arrayObject.sort([sortby]) 传入比较函数sortby,直接降序排列

当参数 sortby 不存在时是按照字符编码的顺序进行排序。

若提供比较函数 function(x, y){ return 返回值; }

  • 返回值 <= 0: x, y 不变

  • 返回值 > 0: x, y 交换位置

(2) sort()升序排列后,再利用reverse()反序

3. 将字符串转换为Number

(1) parseInt(string, [radix])

  • radix:可选参数,表示进制。在不指定radix的情况下:

    • 如果字符串 string 以"0x"或者"0X"开头, 则基数是16 (16进制).

    • 如果字符串 string 以"0"开头, 基数是8(八进制)或者10(十进制),那么具体是哪个基数由实现环境决定。ECMAScript 5 规定使用10,但是并不是所有的浏览器都遵循这个规定。因此,永远都要明确给出radix参数的值。

    • 如果字符串 string 以其它任何值开头,则基数是10 (十进制)。

    • 如果第一个字符不能被转换成数字,parseInt返回NaN。

(2) Number(str): 若传入的字符串中含有非数字字符,将返回NaN

(3) + 运算符,强制类型转换

除此之外,将String转换为Number还可使用

(4) 运算符 -*/ 都可以进行强制类型转换

(5) ~~ 按位非运算符

【7 kyu】Descending Order相关推荐

  1. UVALive - 3055 Symmetric Order【水题】【STL】

    [题目描述] In your job at Albatross Circus Management (yes, it's run by a bunch of clowns), you have jus ...

  2. NUC1840 Graveyard Design【尺取法】

    Graveyard Design 时间限制: 10000ms 内存限制: 64000KB 通过次数: 1总提交次数: 1 问题描述 King George has recently decided t ...

  3. 【杨镇】【中译修订版】以太坊的分片技术官方介绍

    杨镇,资深软件架构师,资深开发工程师.以太坊技术爱好者与布道者. 是Solidity官方文档中译项目的重要贡献者,以太坊Homestead官方文档中文版译者,并对以太坊黄皮书中文版.Thunder共识 ...

  4. 经典算法书籍推荐以及算法书排行【算法四库全书】

    经典算法书籍推荐以及算法书排行[算法四库全书] 作者:霞落满天   https://linuxstyle.blog.csdn.net/    https://blog.csdn.net/21aspne ...

  5. 数据结构之【线性表】(顺序表、链表的基本操作实现)

    概念 线性表:是N个数据元素的有限序列. 顺序表:用一组地址连续的存储单元依次存储[线性表 ]的数据元素.(区别于有序表:表中的数据元素存在非递增或非递减有序) 链表:用一组任意的存储单元来存储[线性 ...

  6. 【算法导论】【ACM】归并排序总结

    许多有用的算法在结构上是递归的:为了解决一个给定的问题,算法一次或多次递归地调用其自身以解决紧密相关地若干子问题.这些算法典型的遵循分治法地思想:将原问题分解成几个规模较小但类似于原问题的子问题,递归 ...

  7. 2008年上半年 网络工程师 上下午试卷【附带答案】

    2004-2017年真题+答案[0.23RMB]自取 2008年上半年 网络工程师 上午试卷 ● 内存采用段式存储管理有许多优点,但 (1) 不是其优点. (1)A.分段是信息逻辑单位,用户不可见   ...

  8. 【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization

    ·阅读摘要:   本文提出了DPCNN(深度金字塔CNN)模型.在transformer.bert还没兴起的年代,模型越深效果越好,但是模型的复杂度会随着深度提升.粗略地说,DPCNN就是为了解决CN ...

  9. 【POJ 2482】 Stars in Your Window(线段树+离散化+扫描线)

    [POJ 2482] Stars in Your Window(线段树+离散化+扫描线) Time Limit: 1000MS   Memory Limit: 65536K Total Submiss ...

  10. sql and和in能连用吗_解析法律英语中【同义词连用】现象

    在法律英语中常常会出现多个同义词连用的现象(一般是两词或三词),其被称为"Doublets and Triplets in English Legal Language". 解析法 ...

最新文章

  1. 怎么样设置关闭网页再次登录网页是正常登录状态_学籍系统出现“该账号已登录,不能重复登录”怎么办?...
  2. python——面向对象进阶之新增属性和方法
  3. javax.xml.bind.UnmarshalException: 意外的元素 (uri:, local:xml)。所需元素为(none)
  4. matlab simulnk笔记07——模块(接地模块group、终止模块terminal、信号合并mux与分解模块demux)
  5. python读压缩文件内容_Python读写压缩文件的方法
  6. Oracle宣布在云上正式上线 自治事务处理数据库
  7. 托管项目到github
  8. ssh不能进入save方法_如何 SSH 登录到 Linux 上的特定目录
  9. 测试金士顿固态硬盘软件,金士顿固态硬盘管理工具(Kingston SSD Manager)
  10. 计算机 海底世界 教案,海底世界教学反思?海底世界儿童画?鱼鱼桌面海底世界...
  11. powerdesigner中cmd模型中多对多_[进行中]美的多多进宝日
  12. IDEA--Mybatis插件
  13. python 多行注释 快捷键
  14. 【程序员金典】字符串互异
  15. 无所遁形——快把你的口罩戴上(口罩识别)
  16. Criteria条件查询
  17. mysql中设置时区
  18. Drupal7_2:安装drupal
  19. laravel5.5+资源控制器
  20. matlab 裕度指令,稳定裕度的计算开环传递函数Matlab命令num.PPT

热门文章

  1. csp怎么给线条描边_UI设计风格解析之MBE描边线条设计风格
  2. 上古卷轴5:重制版AFT管理随从导致瑟拉娜Serana有关的MOD眼睛变金色的问题解决
  3. three 星空穿梭,常见的星空星星移动
  4. python 爬取种子_Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息...
  5. 51单片机点亮LED灯、流水灯
  6. 欢迎清风艾艾在ITPUB博客安家!
  7. php调用微信公众号支付接口,Thinkphp实现微信公众号支付接口
  8. 精囊妙计 -- 策略模式(Strategy Pattern) 介绍 优缺点 使用场景案例及代码演示
  9. oracle rac告警,oracle11.2.0.4 RAC 日志总有告警
  10. python脚本1 - PPT导出为图片(WinLinux)