发布网友 发布时间:2022-05-16 05:06
共7个回答
懂视网 时间:2022-05-16 09:28
我和朋友小王都是“减肥健身俱乐部”的成员。小王最近总是忧心忡忡的样子,因为每月这几天都会发布一个所有成员的体重名单,而他每次都无一例外是最胖的。
我也是拟定名单的一份子,于是我告诉他:“别担心,我的朋友,我来帮你改下列表的顺序”。
我前思后想,觉得还是按这样的顺序来排为好:每个体重数字,按各个数位数字之和,从小到大排列。
比如说,99kg,它的各个数位数字之和是18,也就是说“权重”为18。
再比如,100kg,它的权重是1,所以排在99kg之前。
任务是这样:
给定减肥俱乐部成员名单字符串,你能按权重给它排序并返回嘛?
例子:
"56 65 74 100 99 68 86 180 90" => "100 180 90 56 65 74 68 86 99"
当两个数字拥有同样的权重,如180和90,则180在前,此时我们按照字典序来。
所有数字都为正,列表可能为空。
说实话,看到这个题目,我也是有些汗~毕竟自己也是个胖子。
直接操作字符串显然不够方便,还是打散成数组吧!
接着对数组进行排序,规则如下:
1.权重优先,权重越小,排名越前。
2.当权重相同,再按照字典序排列。
计算权重,也就是计算各个数位数字之和,得需要这个方法:
function eachDigitSum(num){ var sum = 0; num = num - 0; while(num > 0){ sum += num % 10; num = parseInt(num / 10); } return sum; }
接着,比较字典序,需要这个方法:
function compareASCII(a,b){ var i=0; while(true){ var c1 = a.charCodeAt(i); var c2 = b.charCodeAt(i); if(!c1){ return -1; } if(!c2){ return 1; } if(c1 < c2){ return -1; } if(c1 > c2){ return 1; } i++; } }
其实这个方法在原生JS是有替代方法的:
String.prototype.localeCompare
这个默认就是按字典序。
最后,整合下排序,再聚合成字符串就可以了。
function orderWeight(str) { return str.split(" ").sort(function(a,b){ var n1 = eachDigitSum(a); var n2 = eachDigitSum(b); if(n1 > n2){ return 1; } else if(n1 < n2){ return -1; } else{ return compareASCII(a,b); } }).join(" "); }
热心网友 时间:2022-05-16 06:36
减肥法是指依据某种的科学方法(多指最佳科学节食),达到健康的减少体重的目的。近年来,国外许多专家、学者对减肥方法进行了广泛而深入的研究,提出了不少行之有效的方法,大致分为两类:一、科学饮食减肥法,通过科学控制日常饮食达到减肥目的;二、生理期减肥法,依据身体的机能状况并配合饮食,以达到减重的目的。热心网友 时间:2022-05-16 07:54
不论通过什么产品减肥,都要坚持选择健康安全的方式,减肥期间多喝温水,可以加速代谢,适当运动,可以调动身体机能,最重要的是一定不要节食,反而要大量补充蛋白质和各种营养,才能不伤气血热心网友 时间:2022-05-16 09:28
个人体验过康宝莱的减肥俱乐部,根据评估的结果指导你制定符合自己的减肥计划。每天运动多长时间,一日三餐怎么安排,减肥餐可以吃哪些食物搭配,选择一餐还是两餐喝康宝莱代餐奶昔等等,我按照他们的计划坚持了两个多月,挺不错的~热心网友 时间:2022-05-16 11:20
当然能,俱乐部的工作人员都是专业的,不管是方法还是经验都要比我们多,想要减重的话,我觉得真的可以去俱乐部试试,当然,也要做好坚持的准备才行热心网友 时间:2022-05-16 13:28
服务商有专业的减肥俱乐部,可以给你做健康评估,然后再根据身体状况给出针对性的减肥方法,比如怎么吃饭,这要比自己盲目减重好得多热心网友 时间:2022-05-16 15:52
你都看到了。问问里面减肥的顾客有没有效果不就好了?