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

全部评论
m
点赞 回复 分享
发布于 2023-08-18 21:51 江苏
m
点赞 回复 分享
发布于 2023-08-19 02:43 安徽
mark
点赞 回复 分享
发布于 2023-08-19 23:28 陕西
mark
点赞 回复 分享
发布于 2023-08-19 23:52 日本
mark
点赞 回复 分享
发布于 2023-08-20 00:02 俄罗斯
mark
点赞 回复 分享
发布于 2023-08-20 00:11 俄罗斯
mark
点赞 回复 分享
发布于 2023-08-20 01:36 日本

相关推荐

走不到的路就这样算了吗:大佬硬气
点赞 评论 收藏
分享
头像
10-16 09:58
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
5
21
分享
牛客网
牛客企业服务