奇安信笔试 奇安信笔试题 0513

笔试时间:2024年05月13日

历史笔试传送门:2023秋招笔试合集

第一题

题目:double数

定义double数是位数为偶数且前一半和后一半完全相同的正整数,如: 1212,11,1010 是double数,而313,25,990不是double数。牛牛想知道 [1,n] 内有多少double数。函数传入一个正整数 n ,返回 [1,n] 内double数的个数。

数据范围:1<=n<=10^12

样例输入一

25

样例输出一

2

说明

[1,25] 内的double数有: 11,22,因此答案为2。

样例输入二

2

样例输出二

0

说明

[1,2]内没有double数。

样例输入三

3154354

样例输出三

999

参考题解

对于每一个偶数位长度(如2位、4位、6位等),生成可能的double数。例如:

对于2位数字:生成如11, 22, ..., 99。

对于4位数字:以前两位从10到99,重复它形成如1010, 1111, ..., 9999的数。

我们只需要枚举长度为6的数字即可,所以复杂度是不会爆的。

C++:[此代码未进行大量数据的测试,仅供参考]

class Solution {
public:
    int DoubleNumber(int n) {
        int cnt = 0;
        int i = 1;
        while (true) {
            int st = std::pow(10, i - 1);
            int end = std::pow(10, i) - 1;
            for (int half_num = st; half_num <= end; ++half_num) {
                std::string str_half = std::to_string(half_num);
                std::string str_double = str_half + str_half;
                int double_num = std::stoi(str_double);
                if (double_num > n) {
                    return cnt;
                }
                cnt++;
            }
            i++;
        }

        return cnt;
    }
};

Java:[此代码未进行大量数据的测试,仅供参考]

public class Solution {
    public int DoubleNumber(int n) {
        int cnt = 0;
        int i = 1;
        while (true) {
            int st = (int) Math.pow(10, i - 1);
            int end = (int) Math.pow(10, i) - 1;
            for (int half_num = st; half_num <= end; half_num++) {
                String str_half = Integer.toString(half_num);
                String str_double = str_half + str_half;
                int double_num = Integer.parseInt(str_double);
                if (double_num > n) {
                    return cnt;
                }
                cnt++;
            }
            i++;
        }

        // 这个return理论上是不会被执行的,但为了代码完整性保留
        return cnt;
    }

Python:[此代码未进行大量数据的测试,仅供参考]

class Solution:
    def DoubleNumber(self, n):
        cnt = 0
        i = 1
        while True:
            st = 10 ** (i - 1)
            end = 10 ** i - 1
            for half_num in range(st, end + 1):
                double = int(str(half_num) + str(half_num))
                if double > n:
                    return cnt
                cnt 

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024 BAT笔试合集 文章被收录于专栏

持续收录字节、腾讯、阿里、美团、美团、拼多多、华为等笔试题解,包含python、C++、Java多种语言版本,持续更新中。

全部评论

相关推荐

数禾科技2025届春季校园招聘正式启动数禾科技&nbsp;Java&nbsp;面经牛客投base上海一面&nbsp;5.27钉钉会议&nbsp;1.5h介绍公司业务*&nbsp;2015成立,创始团队为招商银行信用卡中心,目前2000人&nbsp;技术中心300人,互联网助贷平台,撮合资产方(互联网)和资金方(银行/信托机构等)*&nbsp;面试部门为技术中心-信贷中台研发部(40人)-企业信息化小组,所有6个研发组,账户、交易、风控、清算结算、支付、企业信息化(流程化、产研化),实习生hc为2个聊项目*&nbsp;介绍项目*&nbsp;划分功能模块和功能点*&nbsp;登陆验证*&nbsp;md5八股*&nbsp;https详细讲*&nbsp;层序遍历*&nbsp;数据结构场景题:详细设计毕业生表(需求分析、字段类型/长度/空/默认值/索引/依赖、建表sql)(要适应大数据隔离应给每个数据行加入创建时间等字段)反问...过hr面&nbsp;5.30钉钉会议&nbsp;15min*&nbsp;项目及其成果*&nbsp;成绩以及排名*&nbsp;协调资源的例子*&nbsp;紧急交付&nbsp;时间跟质量是什么样的关系&nbsp;例子数禾科技2025届秋季校园招聘正式启动[庆祝][庆祝]数禾科技(全称“上海数禾信息科技有限公司”)成立于2015年8月,是分众传媒、红杉资本、新浪等联合投资的国内领先的金融科技企业。数禾以大数据和技术为驱动,为金融机构提供高效的智能零售金融解决方案,并通过服务银行、信托、消费金融公司等持牌金融机构,为广大C端用户提供消费信贷服务。创始团队及核心骨干来自于招商银行、全美最大银行机构之一Capital&nbsp;One等知名零售金融企业。数禾员工平均年龄28岁,硕士及以上学历占比逾30%,数据和技术人员占比逾60%。旗舰产品为“还呗”,是一款基于生活消费多场景的分期服务平台,面向年轻人提供账单分期和商品分期等多种服务。用户可在购物、消费、还款场景下,享受更灵活、更便捷、更高效的分期生活服务。发展至今,还呗APP注册用户已超过6500万。2、薪酬福利1)极具竞争力的薪酬2)落户上海的机会3)五险一金+补充公积金+商业保险+年度体检4)旅游团建+生日福利+各种节日活动5)丰富不重样的下午茶3、招聘岗位1)算法及模型类:机器学习工程师、模型工程师2)技术类:Java工程师、前端工程师、数据应用工程师、米哈游、数据交付工程师、测试工程师、运维工程师3)数据分析类:风险策略分析师、贷后策略分析师4)产品类:产品经理、经营策略5)其他/职能类:商务经理、会计核算4、招聘流程简历投递--线上笔试(技术类岗位)--面试--测评--offer【投递链接】https://shuhegroup1.zhiye.com/campus/jobs内推码:ES3GVH #校招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#内推#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#内推码#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#秋招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;内推简历优先筛选~投递的UU留下姓名缩写和岗位~ #春招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#校招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#内推#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
点赞 评论 收藏
分享
03-15 11:53
已编辑
兰州大学 Java
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务