LeetCode 1295. 找出所有位数为偶数的数字(Find Numbers with Even Number of Digits)
问题描述:
给定一个整数数组nums,返回其中数字个数为偶数的整数。
注:
示例:
C语言实现:
我提供两种解法。
方法一:
遍历nums,对每一数字n做如下的操作:
定义两个变量d和t,初始值分别为10和0;计算n/d,并将结果赋值给t。如果t大于10,说明n不是一个两位数,然后d*100,即d=1000;继续计算n/d,并将结果赋值给t,如果t大于10,说明n不是一个四位数,如此循环下去,直到t小于10,如果t不等于0,则说明t是一个偶数位数,否则t是一个奇数位数;
过程如下图:
代码如下:
方法二:
按照题目的第二条注解,可知,nums里面的数都小于100000的。
那么如果里面的某个数n是偶数位数,它一定满足下面条件中的某一个:
代码如下:
第二种方法理论上会比第一种好那么一点点。
第一种方法,对每一个数字做判断的时候,都要先计算n/d,然后赋值给t,再判断t的值以后,来确定是否要对d重新赋值偶数是什么,如果要,那么还要重新循环这个操作流程,最后还要根据t的值偶数是什么,对res进行累加操作;而方法二,对每个元素n最多只会判断3次就会得出结果。
Java语言实现:
Java 的实现和C语言的实现一致,不再撰述。
代码如下:
Python语言实现:
Python 的实现和C语言的实现一致,不再撰述。
代码如下:
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。