2729-判断一个数是否迷人

Raphael Liu Lv10

给你一个三位数整数 n

如果经过以下修改得到的数字 恰好 包含数字 19 各一次且不包含任何 0 ,那么我们称数字 n迷人的

  • n 与数字 2 * n3 * n 连接

如果 n 是迷人的,返回 true,否则返回 false

连接 两个数字表示把它们首尾相接连在一起。比方说 121371 连接得到 121371

示例 1:

**输入:** n = 192
**输出:** true
**解释:** 我们将数字 n = 192 ,2 * n = 384 和 3 * n = 576 连接,得到 192384576 。这个数字包含 1 到 9 恰好各一次。

示例 2:

**输入:** n = 100
**输出:** false
**解释:** 我们将数字 n = 100 ,2 * n = 200 和 3 * n = 300 连接,得到 100200300 。这个数字不符合上述条件。

提示:

  • 100 <= n <= 999
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class Solution
{
public:
bool isFascinating(int n)
{
int _2n = 2 * n;
int _3n = 3 * n;
// 连接操作
string str = to_string(n) + to_string(_2n) + to_string(_3n);
// 判断修改得到的数字是否恰好包含数字 1 到 9 各一次且不包含任何0
vector<int> counts(10, 0);
int len = str.length();
for (int i = 0; i < len; i++)
{
counts[str[i] - '0']++;
}
for (int i = 1; i < 10; i++)
{
if (counts[i] != 1)
{
return false;
}
}
if (counts[0] == 0)
{
return true;
}
else
{
return false;
}
}
};
 Comments
On this page
2729-判断一个数是否迷人