大家好,我是 A Fei,又到了今日的解题时间,让我们直接进入今天的题目:
(题目来源为 Codewars)
Welcome. In this kata, you are asked to square every digit of a number and concatenate them.
For example, if we run 9119 through the function, 811181 will come out, because 92 is 81 and 12 is 1.
Note: The function accepts an integer and returns an integer
题目要我们将带入的 Number,每个位数的数字平方之後,回传一个新 Number。其实这题不难,主要考你资料型别转换的概念,我们只要将带入的引数 用 to_s 方法转成 String,然後用 split('') 打散成 Array,就可以用 map 对每个元素平方,最後用 join('') 重新组合成 String,再转成 Number。
以下为我的解答:
def square_digits num
arr = num.to_s.split('')
arr.map{|n| n.to_i ** 2}.join('').to_i
end
比较评分最高的答案:
def square_digits num
num.to_s.chars.map{|x| x.to_i**2}.join.to_i
end
可以看出解题逻辑非常相似,只是对方用 chars 方法,该方法可以将一个 String 的每个字母打散组合成阵列,是个更「炫泡」的作法。
好啦,今天解题时间就到这,大家掰掰~
<<: Day 08 Create a classification model with Azure Machine Learning designer
>>: 【Day08-比较】我们不一样——在python中判断相等的用法is, ==, 与如何判断nan
当初看到这篇的时候 内心很激动! 因为 目前所属单位 部分模式是如此这般 :) 当然 团队成员都非...
接下来的几天,要跟大家介绍一个超级重要的模组—BeautifulSoup 利用它,能轻松地找到HTM...
不知不觉过了三十天,在这三十天中,我们学习了 Coroutine 的每一个面向,我们知道 Corou...
看完永丰的API规格书,开始盘点所需之参数。 由规格书可知,呼叫API所需要的参数有Version、...
在继续开始谈各个面向的题材之前, 还是不免俗地回顾一下自己的数位足迹, 包括了前三年的铁人赛成果...