[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 be isLucky(n) = true;
  • For n = 239017, the output should be isLucky(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 if n 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?)

[JavaScript 刷题] Code Signal - 共用字符数(commonCharacterCount)

[JavaScript 刷题] Code Signal - 矩阵元素之和(matrixElementsSum)