小工具知识网

当前位置: 首页 > 行业知识 > 【阿里笔试题汇总】[全网首发] 2024-04-29-阿里国际春招笔试题-三语言题解(CPP/Python/Java)

行业知识

【阿里笔试题汇总】[全网首发] 2024-04-29-阿里国际春招笔试题-三语言题解(CPP/Python/Java)

2026-10-26 14:18:00 来源:互联网转载

大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新阿里国际近期的春秋招笔试题汇总~

ACM银牌| 多次AK大厂笔试 | 编程一对一辅导

感谢大家的订阅➕ 和 喜欢

清隆这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 清隆领取,会在飞书进行同步的跟新。

⌚️ 春招笔试也是接近尾声,没有拿到offer的小伙伴们抓紧啦~

文章目录

    • 01.卢小姐的连续音节挑战
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
      • 02.K小姐的魔法药水
        • 题目描述
        • 输入格式
        • 输出格式
        • 样例输入
        • 样例输出
        • 数据范围
        • 题解
        • 参考代码
        • 03.彩色项链
          • 题目描述
          • 输入格式
          • 输出格式
          • 样例输入
          • 样例输出
          • 数据范围
          • 题解
          • 参考代码
          • 写在最后
          • 清隆这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 清隆领取,会在飞书进行同步的跟新。

            01.卢小姐的连续音节挑战

            问题描述

            卢小姐最近在学习外语,她注意到在某些语言中,元音不能连续出现。现在,她有一串由不同字母组成的字符序列,她想找出一个最长的连续子序列,使得在这个子序列中没有两个相邻的元音。元音定义为 “a”, “e”, “i”, “o”, “u” 这五个字母,其他所有字母都被视为辅音。

            输入格式

            第一行包含一个正整数 n n n,代表卢小姐拿到的字符序列的长度。

            第二行包含一个长度为 n n n 的字符串,代表卢小姐拿到的字符序列。

            输出格式

            输出一个整数,代表卢小姐可以得到的最长子序列的长度。

            样例输入

            7aeiobcd

            样例输出

            4

            数据范围

            1 ≤ n ≤ 200000 1 \leq n \leq 200000 1≤n≤200000

            题解

            可以遍历整个字符串,同时跟踪当前连续子序列的长度。当遇到元音时,需要检查前一个字符是否也是元音。如果是,就重置当前子序列的长度;如果不是,就继续增加当前子序列的长度,并更新最大长度。

            参考代码

            • Python
              def longest_subsequence_without_adjacent_vowels(n, s):    vowels = set("aeiou")    max_length = 0    current_length = 0    prev_vowel = False        for i in range(n):        if s[i] in vowels:            if prev_vowel:                current_length = 1  # 重置,因为前一个是元音            else:                current_length += 1            prev_vowel = True        else:            current_length += 1            prev_vowel = False                max_length = max(max_length, current_length)        return max_length# 读取输入数据n = int(input().strip())s = input().strip()# 输出最长子序列长度print(longest_subsequence_without_adjacent_vowels(n, s))
              • Java
                import java.util.*;public class Main {    public static int longestSubsequenceWithoutAdjacentVowels(int n, String s) {        Set vowels = new HashSet(Arrays.asList('a', 'e', 'i', 'o', 'u'));        int max_length = 0;        int current_length = 0;        boolean prev_vowel = false;        for (int i = 0; i   
                • Cpp
                  #include #include #include using namespace std;int longest_subsequence_without_adjacent_vowels(int n, const string& s) {    set vowels = {'a', 'e', 'i', 'o', 'u'};    int max_length = 0;    int current_length = 0;    bool prev_vowel = false;    for (int i = 0; i > n;    cin >> s;    cout     private static final int MOD = (int) 1e9 + 7;        public static void main(String[] args) throws IOException {        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));        int n = Integer.parseInt(br.readLine());        int[] a = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();                Map            for (int i = 2; i                 if (x % i == 0) {                    int cnt = 0;                    while (x % i == 0) {                        cnt++;                        x /= i;                    }                    factors.put(i, factors.getOrDefault(i, 0) + cnt * x);                }            }            if (x  1) {                factors.put(x, factors.getOrDefault(x, 0) + x);            }        }                long res = 1;        for (int exp : factors.values()) {            res = res * (exp + 1) % MOD;        }                System.out.println(res);    }}    int n;    cin > n;    vector a(n);    for (int i = 0; i > a[i];    }        unordered_map factors;    for (int x : a) {        for (int i = 2; i * i             if (x % i == 0) {                int cnt = 0;                while (x % i == 0) {                    cnt++;                    x /= i;                }                factors[i] +=1ll * cnt * x;            }        }        if (x  1) {            factors[x] += x;        }    }        ll res = 1;    for (auto [p, exp] : factors) {        res = res * (exp + 1) % MOD;    }        cout     static int n, k;    static String color;    static List        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));        String[] str = br.readLine().split(" ");        n = Integer.parseInt(str[0]);        k = Integer.parseInt(str[1]);        color = br.readLine();        g = new List[n+1];        for (int i = 1; i             g[i] = new ArrayList            str = br.readLine().split(" ");            int a = Integer.parseInt(str[0]);            int b = Integer.parseInt(str[1]);            g[a].add(b);            g[b].add(a);        }        for (int i = 1; i             Map            res /= 2;        }        System.out.println(res);    }    static void dfs(int u, int pre, Map        if (cnt.size()  k) {            return;        }        if (cnt.size() == k) {            res++;        }        for (int i : g[u]) {            if (i != pre) {                char c = color.charAt(i-1);                cnt.put(c, cnt.getOrDefault(c, 0)+1);                dfs(i, u, cnt);                cnt.put(c, cnt.get(c)-1);                if (cnt.get(c) == 0) {                    cnt.remove(c);                }            }        }    }}    if (cnt.size()  k) {        return;    }    if (cnt.size() == k) {        res++;    }    for (int i : g[u]) {        if (i != pre) {            char c = color[i-1];            cnt[c]++;            dfs(i, u, cnt);            if (--cnt[c] == 0) {                cnt.erase(c);            }        }    }}int main() {    cin > n >> k;    cin >> color;    for (int i = 0; i > a >> b;        g[a].push_back(b);        g[b].push_back(a);    }    for (int i = 1; i         unordered_map        res /= 2;    }    cout 

上一篇:uifast最新下载方式指南,轻松获取,一键体验

下一篇:中兴服务器怎么导出bmc日志?