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多种语言分析,解答。