2023 科大讯飞笔试题 0813
笔试时间:2023年8月13日 秋招
第一题
题目:最大优美排列
小红认为一个排列是优美的,当且仅当对于任意i∈[1,n],aai=n-ai+1成立,其中n代表排列的长度,ai表示排列的第i个元素。她想知道 1-n的所有优美排列中,字典序最大的是哪一个?注意,排列的定义为,若长度为n的序列中,1到n都出现过且仅出现一次,则称该序列为一个排列
输入描述
一个正整数n(1<=n<=10^5),代表排列的长度。
输出描述
一行n个正整数,用空格隔开。代表字典序最大的优美排列。
样例输入
2
样例输出
2 1
参考题解
C++:
#include <iostream> using namespace std; int main() { int n; cin >> n; while (n > 0) { cout << n-- << " "; } return 0; }
Java:
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int n = in.nextInt(); while (n > 0) { System.out.print(n-- + " "); } } }
第二题
题目:小红走字符串
小红有一个长度为n字符串s,他需要从第 1 个字符走到第n个字符,他每次只能走到相邻的字符。当他从si走到si+1时,他会消耗si+1-si点体力值。si+1-si若是负数,意味着他将恢复|si+1-si|点体力值,若体力值消耗到小于 0,则小红将无法继续走。字符相减时字符'a'代表 1,字符'b'代表 2.....以此类推。已知小红现在有k点体力值,他能否从s1走到sn。若能走到,请输出他的剩余体力值,否则输出 -1。
输入描述
第一行两个整数n,k(1<=n,k<=10^5)。 第二行一个长度为n字符串s.
输出描述
一行一个整数,表示他的剩余体力值。若无法走到,则输出 -1。
样例输入
5 2
abcca
样例输出
2
初始处理第一个字符时,体力值为2。
处理第二个字符时,体力值为1。
处理第三个字符时,体力值为0。
处理第四个字符时,体力值为0。
处理第五个字符时,体力值为2。
最终输出2
参考题解
C++:
#include <iostream> using namespace std; int main() { int n, k; cin >> n >> k; cin.ignore(); // Consume the newline character string s; getline(cin, s); int index = 1; while (index < n) { if (k < s[index] - s[index - 1]) { cout << -1 << endl; return 0; } k -= s[index] - s[index - 1]; index++; } cout << k << endl; return 0; }
Java:
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。