阅文1103秋招笔试真题解析
- 2026-11-06 12:54:55
关注我们,每周更新两到三次大厂最新笔试题解析
前言
较为简单的一场,两题都很简单,第一题直接迭代,第二题转成字符串来判断就行。
判断回文数的方法
请补全预设代码中判断回文数的方法,若输入的五位数字是回文是则返回true,否则返回faise。回文数即个位与万位相同,十位与千位相同的数字。如:12321、89898
输入描述
控制台输入的五位数
输出描述
true/false
示例1
输入
12321
输出
true
示例2
输入18182
输出
false
思路与代码
核心思想是通过在数组上迭代,同时根据元素的值来动态更新正数和负数子序列的长度,以找到最长的正数子序列。程序中的逻辑确保在每次遇到正数或负数时,都会考虑到前面的正数或负数子序列,以正确计算最长连续正数子序列的长度。
public int bo(Arraylist<Integer> nums) {
int res = 0;
int minCount = 0, maxCount = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums.get(i) > 0) {
maxCount++;
if (minCount > 0)
minCount++;
} else if (nums.get(i) < 0) {
int tmp = minCount;
minCount = maxCount + 1;
if (tmp > 0)
maxCount = tmp + 1;
else
maxCount = 0;
} else {
maxCount = 0;
minCount = 0;
}
res = Math.max(res, maxCount);
}
return res;
}
}
乘积为正数的最长连续子数组
给定一个长度为n的整数数组,请你找出其中最长的乘积为正数的子数组长度。子数组的定义是原数组中一定长度的连续数字组成的数组。
数据范围:1<n≤10^5,数组中的元素满足|val|≤10°≤10^9
示例1
输入
[1,2,3,-1,4]
输出
3
示例2
输入
[1,2,3,0.41
输出
3
思路与代码
检查用户输入是否为5位数字,然后通过比较字符串中的字符来确定是否是回文数字。
public boolean main(int number) {
String s = String.valueOf(number);
if (s.length() != 5 || !s.matches("\\d+")) {
return false;
}
// 判断是否为回文数字
boolean isPalindrome = true;
for (int i = 0; i < s.length() / 2; i++) {
if (s.charAt(i) != s.charAt(s.length() - 1 - i)) {
isPalindrome = false;
break;
}
}
}
最后插一下我们的进阶一对一辅导啦
我们是一个针对技术岗(前后端开发、测试、测开、大数据开发)校招一对一进阶提高的工作室。我们从2020年2月份开始,迄今整整三年的时间,带领300+学员斩获1500+大厂offer,参加活动的同学人均5个中大厂offer以上,以下是我们活动内容的介绍! 万诺coding
我们主要是针对有一定基础的同学提供一对一笔试和面试辅导,针对每个同学不同的情况定制内容,包括但不限于“数据结构与算法”/“计算机基础知识”/“项目梳理”/“面试技巧”/“面试复盘”等内容。
摸底测试:如果有兴趣深入了解我们的活动,需要先参加我们的“摸底测试”(类似面试),方便我们了解你的具体情况(主要是code能力和计算机素养),定制出相应的辅导计划。同时这也是一个双向筛选的过程,如果基础过差的同学,抱歉我们可能无法辅导(基础过差的同学一对一辅导成本过高,对双方都不适合);摸底测试通过的同学,我们会定制化一个针对性的提高计划。然后你再考虑是否参加我们的活动。
承诺保offer:通过摸底测试后,我们会针对每个同学的情况给定一个“保offer”计划。然后同学可以根据自己的实际情况考虑参不参加我们的活动。
有兴趣的同学可以扫码添加我们的微信(whynotlab)