2026年京东技术面试题库及答案解析.docxVIP

  • 1
  • 0
  • 约7.91千字
  • 约 23页
  • 2026-02-12 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年京东技术面试题库及答案解析

一、编程语言基础(3题,每题10分)

1.题目(10分):

请用Java实现一个方法,输入一个字符串,返回该字符串中所有单词的逆序排列。例如,输入`helloworld`,输出`ollehdlrow`。

答案:

java

publicclassReverseWords{

publicstaticStringreverseWords(Stringinput){

if(input==null||input.isEmpty()){

returninput;

}

String[]words=input.split();

StringBuilderresult=newStringBuilder();

for(Stringword:words){

result.append(newStringBuilder(word).reverse().toString()).append();

}

returnresult.toString().trim();

}

publicstaticvoidmain(String[]args){

Stringinput=helloworld;

System.out.println(reverseWords(input));//输出:ollehdlrow

}

}

解析:

-首先判断输入字符串是否为空,若为空则直接返回。

-使用`split()`按空格分割字符串,得到单词数组。

-遍历单词数组,对每个单词使用`StringBuilder`的`reverse()`方法逆序,并拼接到结果中。

-最后返回结果字符串,并去除末尾多余的空格。

2.题目(10分):

用Python编写一个函数,输入一个列表,返回该列表中所有偶数的平方和。例如,输入`[1,2,3,4,5]`,输出`20`(即22+42=4+16=20)。

答案:

python

defsum_of_even_squares(nums):

returnsum(x2forxinnumsifx%2==0)

示例

print(sum_of_even_squares([1,2,3,4,5]))#输出:20

解析:

-使用列表推导式遍历列表,筛选出偶数(`x%2==0`)。

-对每个偶数计算平方(`x2`),并使用`sum()`函数求和。

-最终返回偶数的平方和。

3.题目(10分):

用C++实现一个函数,输入一个整数,返回该整数的二进制表示中1的个数。例如,输入`9`(二进制`1001`),输出`2`。

答案:

cpp

includeiostream

intcountOnes(intnum){

intcount=0;

while(num!=0){

count+=num1;

num=1;

}

returncount;

}

intmain(){

std::coutcountOnes(9)std::endl;//输出:2

return0;

}

解析:

-使用位运算统计1的个数。

-`num1`判断最低位是否为1,若是则计数加1。

-`num=1`将数字右移一位,继续统计下一个位。

-循环直到数字为0,返回计数结果。

二、数据结构与算法(5题,每题12分)

1.题目(12分):

请解释快速排序(QuickSort)的基本原理,并给出其时间复杂度分析。

答案:

基本原理:

1.选择一个基准值(pivot),通常选择第一个或最后一个元素。

2.将数组分为两部分:左边的元素都小于基准值,右边的元素都大于基准值(分区操作)。

3.递归地对左右两部分分别进行快速排序。

时间复杂度:

-最佳情况:O(nlogn),每次分区都能均匀分割数组。

-平均情况:O(nlogn),分区大致均匀。

-最坏情况:O(n2),每次分区只能减少一个元素(如已排序数组选择最左或最右为基准)。

解析:

快速排序是一种分治算法,通过分区操作将问题分解为更小的子问题。其效率取决于分区操作的均匀性,实际应用中常通过随机选择基准值或三数取中法优化。

2.题目(12分):

请实现一个方法,检查一个字符串是否是回文(正读和反读相同)。例如,`madam`是回文,`hello`不是。

答案:

java

publicclassPalindromeCheck{

publicstaticbooleanisPalindrome(String

文档评论(0)

1亿VIP精品文档

相关文档