理想笔试 理想汽车笔试 理想汽车秋招 0916

笔试时间:2025年9月16日

往年笔试合集:

2023春招秋招笔试合集

2024春招秋招笔试合集

第一题

定义一个正整数是四重数,当且仅当其至少有四个数位是相同的。例如:

  • 4444 是一个四重数,因为其只有四个数位,且均为4
  • 12212212 也是一个四重数,因为其有5个数位是2

现在,给定一个整数n,请你计算距离n最近的四重数。

输入描述

输入一个整数n(1≤n≤10^9),表示给定的整数。

输出描述

输出一个整数,表示距离n最近的四重数。 如果存在多个距离n最近的四重数,请输出最小的那个。

样例输入

1110

样例输出

1111

参考题解

解题思路: 最坏情况下只需要经过1000次就可以找到一个四重数,因此直接暴力枚举。从n开始,逐步扩大搜索范围,检查n-d和n+d是否为四重数,找到时结束。如果距离相同,选择较小的数。

C++:

#include <iostream>
#include <string>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;

bool is_quadruple(long long x) {
    string s = to_string(x);
    map<char, int> cnt;
    
    for (char c : s) {
        cnt[c]++;
    }
    
    for (auto& p : cnt) {
        if (p.second >= 4) {
            return true;
        }
    }
    return false;
}

int main() {
    long long n;
    cin >> n;
    
    if (is_quadruple(n)) {
        cout << n << endl;
        return 0;
    }
    
    int d = 1;
    while (true) {
        long long low = n - d;
        long long high = n + d;
        vector<long long> candidates;
        
        if (low >= 1 && is_quadruple(low)) {
            candidates.push_back(low);
        }
        
        if (is_quadruple(high)) {
            candidates.push_back(high);
        }
        
        if (!candidates.empty()) {
            long long result = *min_element(candidates.begin(), candidates.end());
            cout << result << endl;
            break;
        }
        
        d++;
    }
    
    return 0;
}

Java:

import java.util.*;

public class Main {
    public static boolean isQuadruple(long x) {
        String s = String.valueOf(x);
        Map<Character, Integer> cnt = new HashMap<>();
        
        for (char c : s.toCharArray()) {
            cnt.put(c, cnt.getOrDefault(c, 0) + 1);
        }
        
        for (int count : cnt.values()) {
            if (count >= 4) {
                return true;
            }
        }
        return false;
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong();
        
        if (isQuadruple(n)) {
            System.out.println(n);
            return;
        }
        
        int d = 1;
        while (true) {
            long low = n - d;
            long high = n + d;
            List<Long> candidates = new ArrayList<>();
            
            if (low >= 1 && isQuadruple(low)) {
                candidates.add(low);
            }
            
            if (isQuadruple(high)) {
                candidates.add(high);
            }
            
            if (!candidates.isEmpty()) {
                long result = Collections.min(candidates);
                System.out.println(result);
                break;
            }
            
            d++;
        }
        
        sc.close();
    }
}

Python:

import sys
from collections import Counter

def is_quadruple(x):
    """
    检查整数 x 是否是四重数。
    四重数要求至少有一个数字出现至少四次。
    """
    s = str(x)
    cnt = Counter(s)
    for count in cnt.values():
        if count >= 4:
            return True
    return False

data = sys.stdin.read().split()
n = int(data[0])

if is_quadruple(n):
    print(n)
else:
    d = 1
    while True:
        low = n - d
        high = n + d
        candidates = []
        
        if lo

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

2025 春招笔试合集 文章被收录于专栏

2025打怪升级记录,大厂笔试合集 C++, Java, Python等多种语言做法集合指南

全部评论

相关推荐

少年郎as:这不把公司名贴出来那我可要喷你了哦
点赞 评论 收藏
分享
10-19 10:28
已编辑
西南石油大学 后端工程师
团孝子已上线feeling:面了很多家公司,能感受到目前只有小公司+外包喜欢问八股。大厂虽然也问八股,但是是从实习、项目中进行提问,并且大厂会问很深,面试官也会对你的回答进行思考➕追问,所以准备大厂面试前一定要备好相关资料。对于算法,我做的是codetop前100+力扣hot100+力扣高频150,面试中实感hot100就足够,基本上只要是hot100就秒答。对于项目和八股,我做的也是烂大街的星球项目,八股则是看小林和问ai,自己也写了很多技术博客和画了很多思维导图,并且自己也尝试用嘴巴说出来,不只停留于纸面。运气也很重要,必须要让面试官/HR看到简历才行,所以建议投递时间是下午两点。tl:第一岗位9.9&nbsp;投递9.10&nbsp;一面(一面评价:最近见过最强的大三,结束五分钟后约二面,都晚上九点了不下班吗)9.11&nbsp;二面(三道算法a出两道,反问评价:经验不够等横向,我实习生要啥经验)9.21挂(实习时间过短+其他原因,想要一年实习的,为什么不招个正职)第二岗位10.10投递10.11约面(主管打电话,说看到我之前投递记录了想要我挂qa职进去干后端,同意)10.14&nbsp;一面(无八股,主动说确实很强,意愿很强)10.16&nbsp;oc其余,友邦,东软,东华,惠择,用友oc已拒京东测开一面挂(投后端被测开捞)腾讯测试已拒(投后端被测开捞)ps:表扬惠择的主管面,没怎么问技术(可能是一面面试官沟通过了),全程一起讲大道理,解答了心中很多疑惑,也告诉我以面试官角度来看怎么选候选人,如果可以下次一定选惠择
HeaoDng:美团好像可以触发一面通
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务