2023 小红书笔试题 0326
笔试时间:2023年3月26日 春招实习
第一题
题目:密码学
小明学会了一种加密方式。他定义suc(x)为x在字母表中的后继,例如a的后继为b,b的后继为c… (即按字母表的顺序后一个)。特别的,z的后继为a。对于一个原字符串S,将其中每个字母x都替换成其三重后继,即suc(suc(suc(x)))的字母,即完成了加密。例如,abc加密后变成def (suc(suc(suc(a)))=d suc(suc(suc(b)))=e suc(suc(suc(c)))=f)。现在小明知道一个加密后的字符串S',想请你找出他的原串S。
输入描述
第一行一个正整数N,表示加密后的字符串长度;
接下来一行是长度为N的字符串S',含义如上。保证仅包含小写英文字母。
对于所有数据:1≤N≤50000
输出描述
一行,一个长度为N的字符串S,表示答案。
样例输入
3
def
样例输出
abc
参考题解
C++:[此代码未进行大量数据的测试,仅供参考]
#include<iostream>
#include<cstring>
using namespace std;
int N;
string s;
int main() {
cin >> N;
cin >>s;
for (int i = 0 ; i < N ; i++) {
int cur = s[i] - 'a';
int nx = (cur + 23) % 26;
s[i] = nx + 'a';
}
cout << s << endl;
}
Java:[此代码未进行大量数据的测试,仅供参考]
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
String s = scanner.next();
StringBuilder newS = new StringBuilder();
for (int i = 0; i < N; i++) {
int cur = s.charAt(i) - 'a';
int nx = (cur + 23) % 26;
newS.append((char) (nx + 'a'));
}
System.out.println(newS.toString());
}
}
Python:[此代码未进行大量数据的测试,仅供参考]
N = int(input())
s = input()
new_s = ""
for char in s:
cur = ord(char) - ord('a')
nx = (cur + 23) % 26
new_s += chr(nx + ord('a'))
print(new_s)
第二题
题目:K排序
在算法中,有各
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023 秋招笔试题汇总解析 文章被收录于专栏
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。


顺丰集团工作强度 274人发布