版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编程技能测评题目及答案1.题目:编写一个函数,实现对一个整数列表进行排序,并返回排序后的列表。答案:```pythondefsort_list(numbers):returnsorted(numbers)测试numbers=[3,1,4,1,5,9,2,6]sorted_numbers=sort_list(numbers)print(sorted_numbers)输出:[1,1,2,3,4,5,6,9]```2.题目:给定一个字符串,找出其中不重复的字符,并返回一个包含这些字符的列表。答案:```pythondeffind_unique_chars(s):unique_chars=[]forcharins:ifs.count(char)==1:unique_chars.append(char)returnunique_chars测试s="leetcode"unique_chars=find_unique_chars(s)print(unique_chars)输出:['l','e','t','o','d']```3.题目:实现一个函数,计算两个整数之间的最大公约数(GCD)。答案:```pythondefgcd(a,b):whileb:a,b=b,a%breturna测试a=48b=18print(gcd(a,b))输出:6```4.题目:编写一个函数,检查一个字符串是否是回文。答案:```pythondefis_palindrome(s):returns==s[::-1]测试s="racecar"print(is_palindrome(s))输出:True```5.题目:给定一个整数数组,请编写一个函数,找出数组中连续子数组的最大和。答案:```pythondefmax_subarray_sum(nums):ifnotnums:return0max_sum=current_sum=nums[0]fornuminnums[1:]:current_sum=max(num,current_sum+num)max_sum=max(max_sum,current_sum)returnmax_sum测试nums=[-2,1,-3,4,-1,2,1,-5,4]print(max_subarray_sum(nums))输出:6```6.题目:实现一个函数,将一个整数转换为罗马数字。答案:```pythondefint_to_roman(num):roman_numerals={1000:'M',900:'CM',500:'D',400:'CD',100:'C',90:'XC',50:'L',40:'XL',10:'X',9:'IX',5:'V',4:'IV',1:'I'}result=''forvalue,numeralinsorted(roman_numerals.items(),reverse=True):whilenum>=value:result+=numeralnum-=valuereturnresult测试num=1994print(int_to_roman(num))输出:'MCMXCIV'```7.题目:给定一个整数数组,请编写一个函数,找出数组中缺失的最小正整数。答案:```pythondeffirst_missing_positive(nums):n=len(nums)foriinrange(n):while1<=nums[i]<=nandnums[i]!=nums[nums[i]-1]:j=nums[i]-1nums[i],nums[j]=nums[j],nums[i]foriinrange(n):ifnums[i]!=i+1:returni+1returnn+1测试nums=[3,4,-1,1]print(first_missing_positive(nums))输出:2```8.题目:实现一个函数,检查一个链表是否是回文。答案:```pythonclassListNode:def__init__(self,value=0,next=None):self.value=valueself.next=nextdefis_palindrome(head):fast=slow=headprev=Nonewhilefastandfast.next:fast=fast.next.nextnext_node=slow.nextslow.next=prevprev=slowslow=next_nodeiffast:slow=slow.nextreturnslow==reverse_list(slow)defreverse_list(head):prev=Nonecurrent=headwhilecurrent:next_node=current.nextcurrent.next=prevprev=currentcurrent=next_nodereturnprev测试构建链表1->2->2->1head=ListNode(1)head.next=ListNode(2)head.next.next=ListNode(2)head.next.next.next=ListNode(1)print(is_palindrome(head))输出:True```9.题目:给定一个整数数组,请编写一个函数,找出数组中第k大的元素。答案:```pythonimportheapqdeffind_kth_largest(nums,k):returnheapq.nlargest(k,nums)[-1]测试nums=[3,2,1,5,6,4]k=2print(find_kth_largest(nums,k))输出:5```10.题目:实现一个函数,将一个二叉树按照层序遍历的方式打印出来,每一层的元素用一个分隔符隔开。答案:```pythonclassTreeNode:def__init__(self,value=0,left=None,right=None):self.value=valueself.left=leftself.right=rightdefprint_level_order(root):ifnotroot:return""queue=[root]result=[]whilequeue:level_size=len(queue)level=[]for_inrange(level_size):node=queue.pop(0)level.append(str(node.value))ifnode.left:queue.append(node.left)ifnode.right:queue.append(node.right)result.append("".join(level))return"\n".join(result)测试构建二叉树1/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【苏教版】-小学一年级数学下册-第1课时 数数、数的组成
- 25年春【大象版】小学2年级科学上册【二上4单元《力和形变》教材编写思路与教学建议·杨春生】
- 铜陵市护士招聘笔试题及答案
- 铁岭市教师招聘考试题库及答案
- 2026春苏科版(新教材)小学信息技术四年级下册《保护好自己的数据》同步练习及答案
- 烹饪西点蛋糕裱花技巧题目及答案
- 设计师排版题库及答案
- 十堰市教师招聘笔试题及答案
- 深圳市专职消防员招聘面试题及答案
- 26年鼻咽癌精准医疗质控要点梳理
- 国家开放大学《应用概率统计》综合作业1-4参考答案
- 2023年公务员体检表
- YY/T 0681.4-2010无菌医疗器械包装试验方法第4部分:染色液穿透法测定透气包装的密封泄漏
- JJG 7-2004直角尺
- JJF 1836-2020微量分光光度计校准规范
- GB/T 30341-2013机动车驾驶员培训教练场技术要求
- GB/T 1095-2003平键键槽的剖面尺寸
- 施工扬尘治理六个百分百检查表格
- 32课件 国家电网公司电力安全工作规程线路部分
- 护士压力情绪管理课件
- 桥梁隧道施工监理控制要点课件
评论
0/150
提交评论