程序员编程面试题含答案.docxVIP

  • 0
  • 0
  • 约7.26千字
  • 约 21页
  • 2026-01-31 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年程序员编程面试题含答案

一、编程语言基础(5题,每题10分,共50分)

1.Python编程题(10分)

题目:

请编写一个Python函数,输入一个正整数列表,返回其中所有奇数的平方和。例如,输入`[1,2,3,4,5]`,返回`12+32+52=35`。

答案:

python

defsum_of_odd_squares(nums):

returnsum(x2forxinnumsifx%2!=0)

解析:

-列表生成式`x2forxinnumsifx%2!=0`用于筛选奇数并计算平方。

-`sum()`函数汇总所有奇数平方的值。

-时间复杂度:O(n),空间复杂度:O(1)。

2.Java编程题(10分)

题目:

请实现一个Java方法,判断一个字符串是否为“回文”(正读反读相同)。例如,`level`和`madam`是回文,`hello`不是。

答案:

java

publicstaticbooleanisPalindrome(Strings){

intleft=0,right=s.length()-1;

while(leftright){

if(s.charAt(left)!=s.charAt(right)){

returnfalse;

}

left++;

right--;

}

returntrue;

}

解析:

-双指针法从字符串两端向中间遍历,比较字符是否相同。

-时间复杂度:O(n),空间复杂度:O(1)。

-忽略大小写和空格时需额外处理(题目未要求)。

3.JavaScript编程题(10分)

题目:

请编写一个JavaScript函数,输入一个对象(如`{a:1,b:2,c:3}`),返回一个新对象,其中键值对顺序颠倒(如`{1:a,2:b,3:c}`)。

答案:

javascript

functioninvertObject(obj){

returnObject.fromEntries(

Object.entries(obj).map(([key,value])=[value,key])

);

}

解析:

-`Object.entries(obj)`将对象转为键值对数组。

-`map()`交换键值顺序。

-`Object.fromEntries()`重新构建对象。

-时间复杂度:O(n),空间复杂度:O(n)。

4.C++编程题(10分)

题目:

请实现一个C++函数,删除链表中所有重复的元素,返回不重复的链表。例如,输入`1-2-3-3-4-4-5`,返回`1-2-5`。

答案:

cpp

structListNode{

intval;

ListNodenext;

ListNode(intx):val(x),next(nullptr){}

};

ListNodedeleteDuplicates(ListNodehead){

ListNodedummy=newListNode(0);

dummy-next=head;

ListNodeprev=dummy;

while(head){

if(head-nexthead-val==head-next-val){

while(head-nexthead-val==head-next-val){

head=head-next;

}

prev-next=head-next;

}else{

prev=prev-next;

}

head=head-next;

}

ListNoderesult=dummy-next;

deletedummy;

returnresult;

}

解析:

-使用虚拟头节点`dummy`方便操作。

-双指针`prev`和`head`遍历链表,删除重复节点。

-时间复杂度:O(n),空间复杂度:O(1)。

5.C#编程题(10分)

题目:

请编写一个C#方法,输入一个数组,返回数组中的“众数”(出现次数最多的元素)。若众数不唯一,返回最小的众数。例如,输入`[2,2,1,1,1,2,2]`,返回`2`。

答案:

csharp

usingSystem.Collections.Generic;

publicstaticintFindMajority(int[]nums){

Dictionaryint,intcount=newDictionaryin

文档评论(0)

1亿VIP精品文档

相关文档