阿里笔试 盒马笔试 盒马秋招 1018

笔试时间:2025年10月18日

往年笔试合集:

2023春招秋招笔试合集

2024春招秋招笔试合集

第一题

小红正在数偶数:0,2,4,6,8,10,12,……,并将这些数依次拼接成一个无穷长的字符串"0246810121416···"。现给定一个正整数n,请你确定该字符串的第n个字符是什么(下标从1开始)。

输入描述

在一行上输入一个整数n(1≤n≤10^9)。

输出描述

在一行上输出一个字符,表示该字符串的第n个字符。

样例输入

6

样例输出

1

在这个样例中,字符串前6个字符为"024681",因此第6个字符是"1"。

参考题解

解题思路:

  1. 偶数序列中的每个数字长度不同: 个位数偶数(0, 2, 4, 6, 8)长度为1两位数偶数(10, 12, 14, ...)长度为2三位数偶数(100, 102, ...)长度为3,依此类推
  2. 我们需要找到包含第n个字符的那个偶数: 从最小的偶数0开始,依次累加每个偶数的长度当累加长度 ≥ n时,说明第n个字符就在当前这个偶数中

C++:

#include <iostream>
#include <string>
using namespace std;

void solve() {
    int n;
    cin >> n;
    
    string s = "";
    int k = 0;
    int total_len = 0;
    
    while (total_len < n) {
        string even_str = to_string(2 * k);
        s += even_str;
        total_len += even_str.length();
        k++;
    }
    
    cout << s[n - 1] << endl;
}

int main() {
    solve();
    return 0;
}

Java:

import java.util.Scanner;

public class Main {
    public static void solve() {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        
        StringBuilder s = new StringBuilder();
        int k = 0;
        int totalLen = 0;
        
        while (totalLen < n) {
            String evenStr = String.valueOf(2 * k);
            s.append(evenStr);
            totalLen += evenStr.length();
            k++;
        }
        
        System.out.println(s.charAt(n - 1));
    }
    
    public static void main(String[] args) {
        solve();
    }
}

Python:

import sys

def solve():
    n = int(sys.stdin.readline().strip())
    parts = []
    k = 0
    total_len = 0
    while total_len < n:
        even_str = str(2 * k)
        parts.append(even_str)
        total_len += len(even_str)
        k += 1
    s = "".join(parts)
    print(s[n - 1])

solve()

第二题

小红有一个仅包含n个字符'a'的字符串,你需要对这个字符串进行操作,每次操作需要将一个字母改为另一个与它不同的小写字母。小红想知道在进行恰好m次操作后,可能会有多少种不同的字符串?由于这个答案可能很大,因此需要将答案对10^9+7取模。

输入描述

两个正整数n和m(1≤n,m≤10^5

输出描述

一个整数。

样例输入

3 1

样例输出

75

样例说明:必须修改一次,有3个位置可以修改,每个位置可以改成除了'a'以外的任意字符,共有25种方式。因此答案是3×25=75。

参考题解

解题思路:

  1. 问题转化:初始全是'a',每次操作必须改成其他字母(有25种选择)。最终字符串中,被修改过的位置可以是任意非'a'的字母(26个字母中除去'a',有25种选择),且

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

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

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

全部评论

相关推荐

网上基本都劝退移动端,我也很少看到移动端笔试经验贴。我之前做过韶音的笔试题,分为选择题和编程题,和京东的差不多。但是韶音只能用java写编程题,我主要用kotlin和python(刷题用python),就直接没做就交卷,当然就没后续了。我也做过vivo的客户端笔试题,当时我投的是测试,但是给我发了客户端的卷子,我朋友投oppo&nbsp;c++岗太迟也被调到了客户端,这几家题目都差不多格式。回忆一下这几次考试,主要依据是今天的京东的。选择题(共60分),考点有linux系统命令,安卓虚拟机adb命令,排序算法的时间复杂度;排序可用栈还是二叉树啥的表示;二叉树3种遍历方式给俩,推另一个;栈的入栈出栈;kotlin/java代码挖空选代码;安卓view相关的方法、四大组件的生命周期;线程的方法,产生arn的情况;还有考设计模式。编程题的话一般是2道,共40分,有的机考不会告诉你通过了多少例题,jd的是有告诉的。我算法题刷的很佛系,最近有刷代码随想录但只刷了前几章。不过我当学院课程助教,老师出的作业有用动态规划算法等要求,我改多了就理解了。不知道我会不会进入一面,但也是会准备一下。我蛮喜欢京东的,如果能进去也不挑什么岗位了。大家都劝退客户端岗位,没有前途,确实如此。我的带教做过几年安卓开发,主要做go开发,他会搭项目架构,跟我说了很多,虽然他那些我暂时接触不到,但知道以后的努力方向。安卓开发需求以后肯定是有的,只是会很少,上限低。如果只会画ui啥的,那肯定没前途。但是在一个不太卷的赛道,能去更好的平台,自己再主动学习,我想之后的出路也会比较多。总比我本专业好,真的麻了,我读研前很在意硕士学校的认可度,还问过一家本专业公司招不招我这种,结果现在搜那家公司已经注销了。
投递京东等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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