[JavaScript 刷题] Code Signal - 幸运数(is lucky)
Posted GoldenaArcher
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[JavaScript 刷题] Code Signal - 幸运数(is lucky)相关的知识,希望对你有一定的参考价值。
[javascript 刷题] Code Signal - 幸运数(is lucky)
题目地址:isLucky
题目
如下:
Ticket numbers usually consist of an even number of digits. A ticket number is considered lucky if the sum of the first half of the digits is equal to the sum of the second half.
Given a ticket number n
, determine if it’s lucky or not.
Example:
- For
n = 1230
, the output should beisLucky(n) = true
; - For
n = 239017
, the output should beisLucky(n) = false
.
Input/Output:
-
[execution time limit] 4 seconds (js)
-
[input] integer n
A ticket number represented as a positive integer with an even number of digits.
Guaranteed constraints:
10 ≤ n < 106
. -
[output] boolean
true
ifn
is a lucky ticket number,false
otherwise.
解题思路
总觉得在 Leetcode 上刷过这道题,主要的考点还是在于 字符串 和 数字 之间的转换。
接受的参数是 1230
,是数字,要做的第一步就是将其转换成字符串 "1230"
。
随后就是做两个迭代,一个迭代前半部分,获取 1 + 2
的值,另一个迭代后半部分,获取 3 + 0
的值。做迭代的时候就需要将 字符 转换为 数字,否则就是 12
对比 30
,而不是 3
对比 3
。
使用 JavaScript 解题
function isLucky(n) {
const nStr = '' + n;
let sumOfFirstHalf = 0,
sumOfLastHalf = 0;
for (let i = 0; i < nStr.length / 2; i++) {
sumOfFirstHalf += parseInt(nStr[i]);
}
for (let i = nStr.length / 2; i < nStr.length; i++) {
sumOfLastHalf += parseInt(nStr[i]);
}
return sumOfFirstHalf === sumOfLastHalf;
}
以上是关于[JavaScript 刷题] Code Signal - 幸运数(is lucky)的主要内容,如果未能解决你的问题,请参考以下文章
[JavaScript 刷题] Code Signal - 形状面积(shapeArea)
[JavaScript 刷题] Code Signal - 幸运数(is lucky)
[JavaScript 刷题] Code Signal - 翻转括号内字符(reverseInParentheses)
[JavaScript 刷题] Code Signal - 相似数组(Are Similar?)