网易首页 > 网易号 > 正文 申请入驻

2026-08-04:有效数字整数。用go语言,给定一个整数 n 和一个数字 x。当 n 的十进制表示中至少出现一次 x,并且最高位不是 x 时,称 n 是

0
分享至

2026-08-04:有效数字整数。用go语言,给定一个整数 n 和一个数字 x。

当 n 的十进制表示中至少出现一次 x,并且最高位不是 x 时,称 n 是有效的。

请判断 n 是否满足这一条件,满足则返回真,否则返回假。

0 <= n <= 100000。

0 <= x <= 9。

输入: n = 101, x = 0。

输出: true。

解释:

该数字在下标 1 处包含数字 0。它不以 0 开头,因此满足两个条件。所以,答案是 true。

题目来自力扣3908。

详细描述执行过程:

  1. 1.函数入口与变量初始化
    函数validDigit接收两个参数:整数n(待判断的数字)和整数x(目标数字)。
    内部定义布尔变量hasX并初始化为false,它将用于标记在非最高位的其它十进制位中是否至少出现过一次数字x。

  2. 2.剥离低位数字的循环
    进入for循环,循环条件是n >= 10。这一条件保证循环只处理仍有至少两位数字的情况,也就是每次都能剥离出当前的最低位,且剥离后剩下的部分至少还有一位(最终会成为最高位)。
    在每一次循环中:

  • • 计算n % 10,得到当前n的最低位数字。

  • • 将该低位数字与x比较:如果相等,就把hasX置为true。这意味着在非最高位中发现了一次目标数字。

  • • 执行n /= 10,丢弃已检查的最低位,把剩下的高位部分作为新的n,继续下一轮判断。
    这个循环不断“从右向左”扫描十进制位,直到剩余部分只剩下最高位一位数字(即n < 10)为止。

3.处理最高位并返回结果
循环结束时,变量n已经变成了原整数最高位的那一个数字(例如对于101,最终n = 1)。
此时,hasX已经记录了除最高位外是否出现过x。
函数最后的返回语句是:

return hasX && n != x
它同时检查两个条件:
  • •hasX为true:表示在非最高位中,至少出现了一次数字x。

  • •n != x:表示最高位数字不等于x。
    仅当两个条件都满足时,才认为n是“有效”的,返回true;否则返回false。

4.具体示例的执行轨迹(n = 101, x = 0)

  • • 初始:n = 101,hasX = false。

  • • 第一次循环:n >= 10成立,n % 10 = 1≠ 0,hasX保持false;然后n = 101 / 10 = 10。

  • • 第二次循环:n >= 10成立,n % 10 = 0==x,hasX变为true;然后n = 10 / 10 = 1。

  • • 循环条件检查:此时n = 1,不满足n >= 10,循环终止。

  • • 返回:hasX为true且n (1) != x (0)成立,结果为true。这与题目解释一致。

5.边界情况覆盖

  • • 如果n是一位数(0~9),循环不会执行,hasX保持false,最终返回false。这符合题意,因为一位数要么没有其它位出现x,要么本身既是最高位又是唯一出现x的位(最高位等于x),必然不满足两个条件。

  • • 如果x只出现在最高位(例如n = 101, x = 1),那么循环中hasX为false(其它位没有 1),最终返回false,符合“最高位不是 x”的要求。

  • • 如果n = 0, x = 0,循环不执行,hasX为false,n为 0,返回false,也正确,因为最高位是 0 且没有其它位出现 0。

时间复杂度分析
循环的执行次数等于整数n的十进制位数减 1(即去掉最高位后的位数)。设n的位数为d,d = ⌊log₁₀ n⌋ + 1(n > 0)。循环执行d - 1次,时间复杂度为O(d),也可以表示为O(log₁₀ n)。
由于题目中n最大为100000(6 位数),实际循环次数不超过 5 次,可以视作常数时间O(1)。

额外空间复杂度分析
函数内部只使用了固定数量的基础变量(hasX布尔变量、循环中的临时值),不分配任何与输入规模相关的额外内存。因此,总额外空间复杂度为O(1)。

Go完整代码如下:

package main

import (
"fmt"
)

func validDigit(n, x int) bool {
hasX := false
for ; n >= 10; n /= 10 {
if n%10 == x {
hasX = true
}
}
return hasX && n != x
}

func main() {
n := 101
x := 0
result := validDigit(n, x)
fmt.Println(result)
}

Python完整代码如下:

# -*-coding:utf-8-*-

def valid_digit(n: int, x: int) -> bool:
has_x = False
while n >= 10:
if n % 10 == x:
has_x = True
n //= 10
return has_x and n != x

def main():
n = 101
x = 0
result = valid_digit(n, x)
print(result)

if __name__ == "__main__":
main()

C++完整代码如下:

  

using namespace std;

bool validDigit(int n, int x) {
bool hasX = false;
while (n >= 10) {
if (n % 10 == x) {
hasX = true;
}
n /= 10;
}
return hasX && (n != x);
}

int main() {
int n = 101;
int x = 0;
bool result = validDigit(n, x);
cout << boolalpha << result << endl;
return 0;
}

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
问界独立运营第一车:新M8预售38.98万起 10月上市

问界独立运营第一车:新M8预售38.98万起 10月上市

爱卡汽车
2026-10-01 00:29:29
两位国足主帅异口同声,安东尼奥、邵佳一均表示被对方旅欧球员压制

两位国足主帅异口同声,安东尼奥、邵佳一均表示被对方旅欧球员压制

懂球帝
2026-09-30 16:42:48
宋智孝内衣写真引讨论,自然身材获赞也有网友猜测

宋智孝内衣写真引讨论,自然身材获赞也有网友猜测

自愈小日子
2026-09-30 23:01:39
刚刚!教育部任免高校党委书记

刚刚!教育部任免高校党委书记

麦可思研究
2026-09-30 13:44:51
Anthropic,你是来给智谱打广告的吧!

Anthropic,你是来给智谱打广告的吧!

量子位
2026-09-30 18:02:08
多国媒体报道:王楚钦女粉坐轮椅观战,突然行走离开座椅跪地疯狂拍摄

多国媒体报道:王楚钦女粉坐轮椅观战,突然行走离开座椅跪地疯狂拍摄

新杀猪的秀才
2026-10-01 00:01:41
雷军带火的11元早餐,3个月了还在排队:国庆当日6点半游客拖着行李箱来打卡;店主:准备了多一倍的食材

雷军带火的11元早餐,3个月了还在排队:国庆当日6点半游客拖着行李箱来打卡;店主:准备了多一倍的食材

极目新闻
2026-10-01 10:33:55
国台办:“十一”临近,欢迎台湾同胞来一场随心即兴的大陆行

国台办:“十一”临近,欢迎台湾同胞来一场随心即兴的大陆行

澎湃新闻
2026-09-30 11:10:25
创历史!中国达成亚运150金创4大纪录 本届首队+历史第7次

创历史!中国达成亚运150金创4大纪录 本届首队+历史第7次

醉卧浮生
2026-09-30 18:03:23
笑死,经济上行时的自己能有多敢买,网友:好想回到过去打死自己

笑死,经济上行时的自己能有多敢买,网友:好想回到过去打死自己

夜深爱杂谈
2026-09-30 15:33:39
中网首日:莲花球场噪音不断,观众无序霸座,观赛礼仪再引热议

中网首日:莲花球场噪音不断,观众无序霸座,观赛礼仪再引热议

网球之家
2026-09-30 19:04:57
全红婵不对劲,不是她以后不比赛了,而是她今年19岁了,居然开始了自己的精致路线

全红婵不对劲,不是她以后不比赛了,而是她今年19岁了,居然开始了自己的精致路线

二胡的岁月如歌
2026-09-30 20:32:42
王鹤棣爆下体坏死「首露面发声」! 亲口报平安:我的哥们儿很好

王鹤棣爆下体坏死「首露面发声」! 亲口报平安:我的哥们儿很好

ETtoday星光云
2026-09-30 09:49:38
东航回应“空姐下跪道歉事件”:旅客手肘被碰出现威胁言行,乘务员受到惊吓,愿被温柔以待的不只是乘客

东航回应“空姐下跪道歉事件”:旅客手肘被碰出现威胁言行,乘务员受到惊吓,愿被温柔以待的不只是乘客

每日经济新闻
2026-09-30 17:15:56
申花上一个10号 几乎拿了10年合同 现在10号已拿过4年合约 特谢拉还会再续约

申花上一个10号 几乎拿了10年合同 现在10号已拿过4年合约 特谢拉还会再续约

80后体育大蜀黍
2026-09-30 23:58:12
离谱!皇马 5000 万水货彻底崩盘!伯纳乌主力惨遭弃将碾压

离谱!皇马 5000 万水货彻底崩盘!伯纳乌主力惨遭弃将碾压

澜归序
2026-10-01 09:27:29
3连鞭,4-3!斯佳辉逆转夺赛点,2场5-0诞生,塞尔比轰3破百翻盘!

3连鞭,4-3!斯佳辉逆转夺赛点,2场5-0诞生,塞尔比轰3破百翻盘!

刘姚尧的文字城堡
2026-09-30 16:46:14
狱友问我怎么进来的,我:贪10个亿。狱警上来就是一脚:装什么

狱友问我怎么进来的,我:贪10个亿。狱警上来就是一脚:装什么

悬案解密档案
2026-02-26 15:34:48
生姜和它一起煮水,连喝7天!赶走体内陈年寒湿,整个人都清爽了

生姜和它一起煮水,连喝7天!赶走体内陈年寒湿,整个人都清爽了

江江食研社
2026-06-17 22:30:07
潮水退去,所有资产都会露出真实价值。上海杨浦老破小如今挂牌价跌仅3万/㎡,其他区二手房同比持续下跌,曾经暴涨神话难以重现

潮水退去,所有资产都会露出真实价值。上海杨浦老破小如今挂牌价跌仅3万/㎡,其他区二手房同比持续下跌,曾经暴涨神话难以重现

捣蛋窝
2026-09-30 06:05:08
2026-10-01 13:32:49
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1488文章数 83关注度
往期回顾 全部

科技要闻

华为Mate90系列发布,售价5999元起

头条要闻

媒体:日本可能举办了"史上最差亚运会" 槽点实在太多

头条要闻

媒体:日本可能举办了"史上最差亚运会" 槽点实在太多

体育要闻

30天30队·火箭:乌度卡的控制欲

娱乐要闻

宋佳二封金鹰视后 内娱奖项史即将改写

财经要闻

智谱发上亿Token 能挽回开发者信任吗?

汽车要闻

燃油车的最佳平替 长城大狗HEV简单好开更经济

态度原创

艺术
教育
本地
健康
公开课

艺术要闻

吴冠中最后一回野外油画写生,2875万!

教育要闻

“用3块钱,买来儿子自卑三年”,家长补好的鞋子,儿子却死活不愿穿

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

刷酸祛痘,为什么有人翻车?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版