【秋招突围】2024届秋招笔试-科大讯飞笔试题-03-三语言题解(Java/Cpp/Python)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员
✨ 本系计划跟新各公司春秋招的笔试题
💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导
👏 感谢大家的订阅➕ 和 喜欢💗
📧 清隆这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注CSDN同名公主号领取,会在飞书进行同步的跟新。
文章目录
- 📖 写在前面
- 夏天要来了 秋招还会远吗?
- 🍄 01.卢小姐的蛋糕分享
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 数据范围
- 题解
- 参考代码
- 🎧 02.字符串的魔法变换
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 数据范围
- 题解
- 参考代码
- 🍿 03.LYA 的魔法项链
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 数据范围
- 题解
- 参考代码
- 🎀 写在最后
- 🛖 这里介绍一下咱们的笔试打卡小屋
- 🥰 打卡奖励
- 🕰 每日学习安排
- 📖 打卡小屋涉及题型
- 基础算法
- 基础数据结构
- 搜索
- 动态规划 & 贪心 & 数论
📖 写在前面
夏天要来了 秋招还会远吗?
前不久春招也算是圆满结束咯,大家有拿到心仪的 offer吗?
接下来互联网的秋招也快来啦,小伙伴们有开始准备了吗?
本次给大家带来24届秋招 阿里系 的笔试题目三语言解析(Java/Python/Cpp)
文末有清隆学长的笔试陪伴打卡小屋活动介绍:
✨丰富的打卡奖励等你来领哦,大厂笔试题汇总,笔试面试经验贴,算法笔试模版…
💽 有兴趣的小伙伴们也可以了解一下,不要错过啦~
🍄 01.卢小姐的蛋糕分享
问题描述
卢小姐今天烤了一个蛋糕,打算和朋友们一起分享。蛋糕被切成了 B B B 块,卢小姐自己先拿走了 A A A 块。现在,卢小姐想知道,剩下的蛋糕占整个蛋糕的比例是多少。
换句话说,给定两个正整数 A A A 和 B B B,请计算 1 − A B 1 - \frac{A}{B} 1−BA 的值,并以分数的形式输出,分子和分母之间用空格隔开。
输入格式
输入一行,包含两个正整数 A A A 和 B B B,表示卢小姐拿走的蛋糕块数和蛋糕总块数,数据之间用空格隔开。
输出格式
输出一行,包含两个整数,表示 1 − A B 1 - \frac{A}{B} 1−BA 的值,分子和分母之间用空格隔开。注意,输出的分母必须为 B B B。
样例输入
6 11
样例输出
5 11
数据范围
1 ≤ A < B ≤ 1 0 3 1 \le A < B \le 10^3 1≤A<B≤103
题解
根据题目要求,我们需要计算 1 − A B 1 - \frac{A}{B} 1−BA 的值,并以分数形式输出。我们可以通过以下步骤求解:
- 将 1 1 1 转化为 B B \frac{B}{B} BB 的形式。
- 计算 B B − A B \frac{B}{B} - \frac{A}{B} BB−BA,得到 B − A B \frac{B-A}{B} BB−A。
- 输出 B − A B-A B−A 和 B B B,即为所求分数的分子和分母。
时间复杂度: O ( 1 ) O(1) O(1)。
空间复杂度: O ( 1 ) O(1) O(1)。
参考代码
- Python
a, b = map(int, input().split())
print(b - a, b)
- Java
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int a = sc.nextInt();int b = sc.nextInt();System.out.println((b - a) + " " + b);}
}
- Cpp
#include <iostream>using namespace std;int main() {int a, b;cin >> a >> b;cout << b - a << " " << b << endl;return 0;
}
🎧 02.字符串的魔法变换
问题描述
LYA 是一个喜欢研究字符串的女孩。她发现,如果将一个字符串 S S S 中的某一段子串 S [ L , R ] S[L,R] S[L,R] 进行翻转,可以得到一个新的字符串。例如,将字符串 abcdefg
的子串 cdef
进行翻转,可以得到新字符串 abfedcg
。
现在,LYA 有两个长度均为 n n n 的字符串 A A A 和 B B B,她想知道是否可以通过对字符串 A A A 执行 恰好一次 上述的子串翻转操作,使其变成字符串 B B B。如果可以,请求出有多少种不同的翻转方案。
输入格式
第一行包含一个正整数 n n n,表示字符串的长度。
第二行包含一个长度为 n n n 的字符串 A A A。
第三行包含一个长度为 n n n 的字符串 B B B。
输出格式
输出一个整数,表示将字符串 A A A 变成字符串 B B B 的不同翻转方案数。如果无法通过一次翻转实现,则输出 0 0 0。
样例输入
6
abcdef
afedcb
样例输出
1
数据范围
- 1 ≤ n ≤ 1 0 4 1 \le n \le 10^4 1≤n≤104
- 字符串 A A A 和 B B B 仅包含小写字母
题解
本题可以通过双指针来解决。
首先,我们可以从字符串 A A A 和 B B B 的左右两端开始比较,找到第一个不同的字符位置 l l l 和最后一个不同的字符位置 r r r。如果 A [ l , r ] A[l,r] A[l,r] 翻转后与 B [ l , r ] B[l,r] B[l,r] 相同,那么就有可能通过一次翻转实现从 A A A 到 B B B 的转换。
接下来,我们验证 A [ l , r ] A[l,r] A[l,r] 翻转后是否与 B [ l , r ] B[l,r] B[l,r] 完全相同。如果不同,说明无法通过一次翻转实现转换,输出 0 0 0。
如果 A [ l , r ] A[l,r] A[l,r] 翻转后与 B [ l , r ] B[l,r] B[l,r] 相同,我们就找到了一种翻转方案。然后,我们可以尝试扩展这个翻转区间,将 l l l 向左移动, r r r 向右移动,并比较 A [ l ] A[l] A[l] 和 A [ r ] A[r] A[r] 是否相等。如果相等,那么这也是一种合法的翻转方案,翻转区间可以继续扩展。直到 l l l 和 r r r 到达字符串边界或者 A [ l ] ≠ A [ r ] A[l] \ne A[r] A[l]=A[r] 时,扩展停止。
最后,输出累计的翻转方案数即可。
时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( 1 ) O(1) O(1)。
参考代码
- Python
def solve(n, a, b):l = 0r = n - 1while l < n and a[l] == b[l]:l += 1while r >= 0 and a[r] == b[r]:r -= 1if l > r:return 1left, right = l, rwhile left <= r:if a[left] != b[right]:return 0left += 1right -= 1ans = 1l -= 1r += 1while l >= 0 and r < n:if a[l] == a[r]:ans += 1l -= 1r += 1else:breakreturn ansn = int(input())
a = input()
b = input()
print(solve(n, a, b))
- Java
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();String a = sc.next();String b = sc.next();System.out.println(solve(n, a, b));}private static int solve(int n, String a, String b) {int l = 0;int r = n - 1;while (l < n && a.charAt(l) == b.charAt(l)) {l++;}while (r >= 0 && a.charAt(r) == b.charAt(r)) {r--;}if (l > r) {return 1;}int left = l;int right = r;while (left <= r) {if (a.charAt(left) != b.charAt(right)) {return 0;}left++;right--;}int ans = 1;l--;r++;while (l >= 0 && r < n) {if (a.charAt(l) == a.charAt(r)) {ans++;l--;r++;} else {break;}}return ans;}
}
- Cpp
#include <iostream>
#include <string>using namespace std;int solve(int n, string a, string b) {int l = 0;int r = n - 1;while (l < n && a[l] == b[l]) {l++;}while (r >= 0 && a[r] == b[r]) {r--;}if (l > r) {return 1;}int left = l;int right = r;while (left <= r) {if (a[left] != b[right]) {return 0;}left++;right--;}int ans = 1;l--;r++;while (l >= 0 && r < n) {if (a[l] == a[r]) {ans++;l--;r++;} else {break;}}return ans;
}int main() {int n;string a, b;cin >> n >> a >> b;cout << solve(n, a, b) << endl;return 0;
}
🍿 03.LYA 的魔法项链
问题描述
LYA 是一位热爱魔法的少女。她拥有一条由 n n n 颗宝石组成的魔法项链,每颗宝石都有自己的颜色。然而,这条项链的魔力只有在所有宝石颜色相同时才能释放。
为了激活项链的魔力,LYA 可以使用魔法来移除项链上的一些宝石。每次移除操作需要选择项链上若干个位置不相邻的宝石进行移除。LYA 希望在项链变得只有一种颜色的宝石时,所需的移除操作次数最少。
现在,LYA 想知道,对于给定的项链长度 n n n 和移除操作次数 k k k,有多少种可能的初始项链状态。由于答案可能很大,请帮助 LYA 构造任意一种满足条件的初始项链状态。
输入格式
输入一行,包含两个以空格分隔的正整数 n n n 和 k k k,分别表示项链的长度和移除操作的次数。
输出格式
输出一个长度为 n n n 的字符串,仅由小写字母构成,表示一种满足条件的初始项链状态。如果不存在满足条件的项链状态,则输出 − 1 -1 −1。
样例输入
6 2
样例输出
abcabc
数据范围
- 1 ≤ k ≤ n ≤ 2 × 1 0 5 1 \leq k \leq n \leq 2 \times 10^5 1≤k≤n≤2×105
题解
这道题可以通过构造的方法来解决。我们可以先确定最终项链的颜色,然后在初始项链中添加一些其他颜色的宝石,使得移除操作的次数恰好等于 k k k。
具体步骤如下:
-
计算需要移除的宝石数量 d e l e t e C o u n t = 2 k − 1 deleteCount = 2^{k-1} deleteCount=2k−1。
-
计算最终剩余的宝石数量 s u r v i v o r C o u n t = n − d e l e t e C o u n t survivorCount = n - deleteCount survivorCount=n−deleteCount。如果 s u r v i v o r C o u n t < 1 survivorCount < 1 survivorCount<1,说明无解,输出 − 1 -1 −1。
-
将初始项链分成若干组,每组的大小为 d e l e t e C o u n t deleteCount deleteCount。如果 d e l e t e C o u n t > s u r v i v o r C o u n t deleteCount > survivorCount deleteCount>survivorCount,则将组数加倍,组的大小减半,直到组的大小不大于 s u r v i v o r C o u n t survivorCount survivorCount。
-
对于每一组,使用不同的字母填充,保证组内字母相同,组间字母不同。
-
在项链的末尾,再添加 s u r v i v o r C o u n t survivorCount survivorCount 个与最后一组不同的字母,作为最终剩余的宝石。
以上步骤可以构造出一种满足条件的初始项链状态。时间复杂度为 O ( n ) O(n) O(n),空间复杂度为 O ( n ) O(n) O(n)。
参考代码
- Python
n, k = map(int, input().split())delete_count = 1 << (k - 1)
survivor_count = n - delete_count
if survivor_count < 1:print(-1)
else:group_count = 1group_size = delete_countwhile group_size > survivor_count:group_count *= 2group_size = delete_count // group_countresult = []for i in range(group_count):for j in range(group_size):result.append(chr(ord('a') + i))survivor = chr(ord(result[-1]) + 1)result.extend([survivor] * survivor_count)print(''.join(result))
- Java
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int k = scanner.nextInt();int deleteCount = 1 << (k - 1);int survivorCount = n - deleteCount;if (survivorCount < 1) {System.out.println(-1);} else {int groupCount = 1;int groupSize = deleteCount;while (groupSize > survivorCount) {groupCount *= 2;groupSize = deleteCount / groupCount;}StringBuilder result = new StringBuilder();for (int i = 0; i < groupCount; i++) {for (int j = 0; j < groupSize; j++) {result.append((char) ('a' + i));}}char survivor = (char) (result.charAt(result.length() - 1) + 1);for (int i = 0; i < survivorCount; i++) {result.append(survivor);}System.out.println(result.toString());}}
}
- Cpp
#include <iostream>
#include <string>using namespace std;int main() {int n, k;cin >> n >> k;int deleteCount = 1 << (k - 1);int survivorCount = n - deleteCount;if (survivorCount < 1) {cout << -1 << endl;} else {int groupCount = 1;int groupSize = deleteCount;while (groupSize > survivorCount) {groupCount *= 2;groupSize = deleteCount / groupCount;}string result;for (int i = 0; i < groupCount; i++) {for (int j = 0; j < groupSize; j++) {result.push_back('a' + i);}}char survivor = result.back() + 1;for (int i = 0; i < survivorCount; i++) {result.push_back(survivor);}cout << result << endl;}return 0;
}
🎀 写在最后
🛖 这里介绍一下咱们的笔试打卡小屋
✨ 打卡小屋旨在陪伴大家,养成每日学习的好习惯。在这里,你可以:
- 🤝 与备战笔试的小伙伴相识,找到志同道合的学习小组
- 📝 通过写题解,巩固做题思路,养成良好的记录习惯
- 💡 系统掌握常考算法和数据结构,了解互联网笔试难度
- 🎁 坚持打卡,获得丰厚奖励,激励自己持之以恒
🥰 打卡奖励
打卡时长 | 奖励内容 |
---|---|
7天 | 任选一家最新互联网笔试真题 x 1 (价值29.9r) |
14天 | 任选一家最新互联网笔试真题 x 3 + 笔试面试经验贴 |
21天 | 任选一家最新互联网笔试真题 x 5 + 清隆三语言算法模版 |
28天 | 最新互联网大厂笔试真题汇总(价值199r) + 华为OD机试训练营 (价值89r) |
7天打卡即可值回票价,心动不如行动!=>笔试刷题陪伴小屋-打卡赢价值丰厚奖励 <=
🕰 每日学习安排
小屋将在每日上午发放打卡题目,包括:
- 一道算法模版题,帮助大家掌握常用算法套路
- 根据算法模版,精选一道对应的大厂笔试真题,巩固算法应用
让我们一起直击笔试重点,攻克常考题型!
📖 打卡小屋涉及题型
小屋从零基础出发,涵盖笔试常考知识点:
基础算法
- 自定义排序
- 二分
- 前缀和
- 差分
- 双指针
基础数据结构
- 栈 & 单调栈
- 队列 & 单调队列
- 并查集
- 优先队列(堆)
搜索
- DFS & BFS 基础应用
- 树的遍历
- 基础图论
动态规划 & 贪心 & 数论
- 快速幂
- 组合数
- 质数 & 因数
- 位运算
- 基础动态规划
- 常见贪心
相关文章:

【秋招突围】2024届秋招笔试-科大讯飞笔试题-03-三语言题解(Java/Cpp/Python)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系计划跟新各公司春秋招的笔试题 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📧 清隆这边…...

springboot是否可以代替spring
Spring Boot不能直接代替Spring,但它是Spring框架的一个扩展和增强,提供了更加便捷和高效的开发体验。以下是关于Spring Boot和Spring关系的详细解释: Spring框架: Spring是一个广泛应用的开源Java框架,提供了一系列模…...

基于SpringBoot的CSGO赛事管理系统
您好!我是专注于计算机技术研究的码农小野。如果您对CSGO赛事管理系统感兴趣或有相关开发需求,欢迎随时联系我。 开发语言:Java 数据库:MySQL 技术:SpringBoot框架,Java技术 工具:Eclipse&a…...
使用 Selenium 实现自动化分页处理与信息提取
目录 项目背景与目标Selenium 环境配置分页处理的基本思路简化后的代码示例总结 正文 1. 项目背景与目标 在进行 Web 自动化测试或数据抓取时,处理分页是一个常见的需求。通过 Selenium,我们可以自动化浏览多个分页并提取每页上的信息。本文将介绍如…...

现代信息检索笔记(二)——布尔检索
目录 信息检索概述 IR vs数据库: 结构化vs 非结构化数据 结构化数据 非结构化数据 半结构化数据 传统信息检索VS现代信息检索 布尔检索 倒排索引 一个例子 建立词项(可以是字、词、短语、一句话)-文档的关联矩阵。 关联向量 检索效果的评价 …...
使用Python实现学生管理系统
文章目录 1. 系统概述2. 系统功能3. 实现细节3.1 初始化学生列表3.2 添加学生3.3 显示所有学生3.4 查找学生3.5 删除学生3.6 主菜单 4. 运行系统 在本文中,我们将使用Python编程语言来开发一个简单的学生管理系统。该系统将允许用户执行基本的学生信息管理操作&…...

【嵌入式DIY实例】- LCD ST7735显示DHT11传感器数据
LCD ST7735显示DHT11传感器数据 文章目录 LCD ST7735显示DHT11传感器数据1、硬件准备与接线2、代码实现本文介绍如何将 ESP8266 NodeMCU 板 (ESP-12E) 与 DHT11 (RHT01) 数字湿度和温度传感器连接。 NodeMCU 从 DHT11 传感器读取温度(以 C 为单位)和湿度(以 rH% 为单位)值,…...

基于Tools体验NLP编程的魅力
大模型能理解自然语言,从而能解决问题,但是就像人类大脑一样,大脑只能发送指令,实际行动得靠四肢,所以LangChain4j提供的Tools机制就是大模型的四肢。 大模型的不足 大模型在解决问题时,是基于互联网上很…...
强化学习-3深度学习基础
文章目录 1 强化学习与深度学习的关系2 线性回归3 梯度下降4 逻辑回归5 全连接网络6 更高级的神经网络6.1 卷积神经网络6.2 循环神经网络6.3 transformer 将深度学习和强化学习结合起来,利用深度学习网络强大的拟合能力通过将状态、动作等作为输入,来估计…...

SOC模块LoRa-STM32WLE5有哪些值得关注
SoC 是片上系统的缩写,是一种集成芯片,集成了计算机或其他电子系统的所有或大部分组件。这些组件通常包括中央处理器 (CPU)、内存、输入/输出接口和辅助存储接口。包含数字、模拟、混合信号和通常的 RF 信号处理功能,具体取决于应用。片上系统…...
CSS中的display属性:布局控制的关键
CSS的display属性是控制元素在页面上如何显示的核心属性之一。它决定了元素的显示类型,以及它在页面布局中的行为。本文将详细介绍display属性的不同值及其使用场景,帮助你更好地掌握布局控制。 display属性的基本值 block 特点:块级元素&…...
【Spring Boot AOP通知顺序】
文章目录 一、Spring Boot AOP简介二、通知顺序1. 通知类型及其顺序示例代码 2. 控制通知顺序示例代码 一、Spring Boot AOP简介 AOP(Aspect-Oriented Programming,面向切面编程)是对OOP(Object-Oriented Programming,…...

k8s是什么
1、k8s出现的背景: 随着服务器上的应用增多,需求的千奇百怪,有的应用不希望被外网访问,有的部署的时候,要求内存要达到多少G,每次都需要登录各个服务器上执行操作更新,不仅容易出错,…...
使用雪花算法(Snowflake Algorithm)在Python中生成唯一ID
使用雪花算法Snowflake Algorithm在Python中生成唯一ID 使用雪花算法(Snowflake Algorithm)在Python中生成唯一ID雪花算法简介Python实现代码解析使用示例优势注意事项适用场景结论 使用雪花算法(Snowflake Algorithm)在Python中生…...

Docker期末复习
云计算服务类型有: IaaS 基础设施及服务 PaaS 平台及服务 SaaS 软件及服务 服务类型辨析示例: IaaS 服务提供的云服务器软件到操作系统,具体应用软件自己安装,如腾讯云上申请的云服务器等;SaaS提供的服务就是具体的软件,例如微软的Office套件等。 云计算部署模式有: 私有云…...

DP:子数组问题
文章目录 引言子数组问题介绍动态规划的基本概念具体问题的解决方法动态规划解法:关于子数组问题的几个题1.最大子数组和2.环形子数组的最大和3.乘积最大子数组4.乘积为正数的最长子数组长度5.等差数列划分 总结 引言 介绍动态规划(DP)在解决…...
[Day 20] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
AI在醫療領域的創新應用 隨著科技的快速發展,人工智能(AI)在各行各業的應用越來越廣泛,醫療領域也不例外。AI技術在醫療中的應用不僅提高了診斷的準確性,還改善了病患的治療效果,優化了醫療資源的配置。本…...

Handling `nil` Values in `NSDictionary` in Objective-C
Handling nil Values in NSDictionary in Objective-C When working with Objective-C, particularly when dealing with data returned from a server, it’s crucial (至关重要的) to handle nil values appropriately (适当地) to prevent unexpected crashes. Here, we ex…...

【深入浅出 】——【Python 字典】——【详解】
目录 1. 什么是 Python 字典? 1.1 字典的基本概念 1.2 字典的用途 1.3 字典的优势 2. 字典的基本特点 2.1 键的唯一性 2.2 可变性 2.3 无序性 3. 如何创建字典? 3.1 使用 {} 符号 3.2 使用 dict() 工厂方法 3.3 使用 fromkeys() 方法 4. 字…...

开发RpcProvider的发布服务(NotifyService)
1.发布服务过程 目前完成了mprpc框架项目中的以上的功能。 作为rpcprovider的使用者,也就是rpc方法的发布方 main函数如下: 首先我们init调用框架的init,然后启动一个provider,然后向provider上注册服务对象方法,即us…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...