Pat乙级1025题——反转链表(Python)一个非零返回,一个运行超时

PAT乙级 (Basic Level) 目录【Python解】已完结至1125 计算机编程能力考试(Programming Ability Test,简称PAT)是由。旨在培养和展现学生分析问题、解决问题和计算机程序设计的能力,计算机程序设计人才,并为企业选拔人才提供。 阅读详情

注意

  • 注意如果上一次有反转,那么要将上一次最后一个数据的next改成本次反转后的开始的地址
代码测试结果为21分,出现一个非零返回,一个运行超时
#!/usr/bin/python
# -*- coding: UTF-8 -*-

def reverseList():
    input = raw_input().split(' ')
    input[1] = int(input[1])
    input[2] = int(input[2])
    inputList = [] ##存放链表
    global newstart
    for i in range(input[1]):
        inputList.append(raw_input().split(' '))
    def indexFind(item, aimlist): ##根据地址和列表,找到数据在列表中的位置
        for i in range(len(aimlist)):
            if aimlist[i][0] == item:
                return i
    def reverse(start, lastEnd, list): ##根据起始地址,将接下来的input[2]个结点进行反转
        next = start
        address = start
        for i in range(input[2]):
            index = indexFind(next, list)
            next = list[index][2] ##先记住下一个数据的地址
            list[index][2] = address ##把上一个数据的地址赋值给这个数据的next位置,实现反转
            address = list[index][0] ##记住这个数据的地址,用于赋值给下一个数据的next位置
        index = indexFind(start, list) 
        list[index][2] = next
        if lastEnd != 'NULL': ##如果上一次有反转,那么要将上一次最后一个数据的next改成本次反转后的开始的地址
            lastIndex = indexFind(lastEnd, inputList)
            list[lastIndex][2] = address
        lastEnd = list[index][0]
        if start == input[0]:##找到反转后链表开始的位置
            global newstart
            newstart = address
        return next, lastEnd
    start = input[0]
    lastEnd = 'NULL'
    count = input[1]
    while count >= input[2]:
        start, lastEnd = reverse(start, lastEnd, inputList)
        count = count - input[2]
    next = newstart
    for i in range(len(inputList)):
        #print inputList[i]
        index = indexFind(next, inputList)
        print (' ').join(map(str, inputList[index]))
        next = inputList[index][2]
if __name__ == '__main__':
    reverseList()

测试结果

这里写图片描述

PAT乙级【Java题解合集】 学习完本专栏后,leetcode的简单题应该是没啥问题了,可以去做甲级的题目或者leetcode中等以上难度的题目继续修炼,后续博主会整理并更新算法修炼专栏,欢迎您的订阅!👉🏻算法修炼专栏👈🏻。 阅读详情

相关推荐

PAT乙级python编程练习(五)

PAT乙级python编程练习(五) PAT乙级python编程练习(五) 1021 个位数统计 1017 A除以B 1018 锤子剪刀布 1019 数字黑洞 1020 月饼 1021 个位数统计 给定一个 k 位整数 N=d​k−110​k−1​+⋯+d1101​+d0(0≤di≤9,i=0,⋯,k−1,dk−1>0)N=d​k−110​k−1​+⋯+d1101​+d...

Hannah的博客 919

PAT 乙级(Python) #1025 反转链表 (25 分)

#1025 反转链表 (25 分) 代码展示: headerAddress, N, K = input().split() N, K = int(N), int(K) # 映射类型 -> 'address':['data','next','pre'] NodeDict = dict() for i in range(N): address, data, next = input().split() NodeDict[address] = [data, next] # 遍历链表添加前

敲代码的小风 490

PAT乙级练习题_1025“反转链表”_python解题

原题 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最后不到 K 个元素不反转。 输入格式 每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤10510^5105)、以及正整数 K (≤N),即要求反转的子链结点的个数。结点的地址是 5 位非负整数,NULL 地址用 −1 表示。 接下来有 N 行,每行格式为: Address Data Next 其中 Add

PAT乙级 1025 反转链表 (25 分)

#1025 反转链表 (25 分) ''' 00100 6 4 00000 4 99999 00100 1 12309 68237 6 -1 33218 3 00000 99999 5 68237 12309 2 33218 ''' link=[None for _ in range(10000)] head,N,K=map(int,input().split(' ')) for i in range(N): add,data,next=map(int,input().split(' ')) .

weixin_44251938的博客 315

当勒索软件盯上虚拟化层:从CVE-2025-22225漏洞看ESXi安全加固要点

本文深度剖析了针对VMware ESXi虚拟化层的CVE-2025-22225等漏洞链的攻击原理,揭示了攻击者如何利用VMCI、HGFS组件从虚拟机逃逸至宿主机。文章从实战角度出发,系统性地提出了ESXi安全加固的核心策略,包括禁用非必要服务、强化主机配置、实施网络分段、建立实时监控与自动化补丁管理体系,为企业构建纵深防御体系提供了具体可行的操作指南。

terraform7cloud的博客 856

Unity Tilemap瓦片动态缩放:保持网格尺寸不变的三种实现方案

本文详细探讨了在Unity中实现Tilemap瓦片动态缩放同时保持网格尺寸不变的三种核心方案。针对编辑器静态调整、整体风格化处理及运行时动态控制等不同场景,分别解析了直接修改瓦片属性、调整Tilemap Renderer材质参数以及使用SetTransformMatrix与Matrix4x4矩阵变换的实践方法、优缺点及选型指南,为2D游戏开发提供灵活高效的视觉与交互解决方案。

grass的博客 627

[PAT-乙级]1025.反转链表

1025. 反转链表 (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3

CVer 1724

用STM32手搓一个体温计

市面上大多额温计、测温计精度。

m0_61687959的博客 2375

PAT乙级1025反转链表 python(运行超时未解决)

PAT乙级1025反转链表 python(运行超时未解决)

m0_43424109的博客 480

045、镜头模组公差链分析:从 Lens 到 Sensor 的装配公差累积与良率优化

本文深入分析了镜头模组从镜片到传感器各环节的公差累积问题及优化策略。文章首先剖析了四级公差链(镜片单体、镜筒装配、VCM定位、传感器贴装)的误差传递机制,指出各环节典型公差值及其影响(如5微米镜片偏差可导致0.02度光线偏折)。其次对比了最坏情况法与均方根法的差异,强调需考虑公差相关性(如镜片曲率与镜筒间隙的正相关性)。最后提出良率优化"三板斧":通过蒙特卡洛仿真优化公差分配、采用主动对准工艺在线补偿、建立数据反馈闭环系统,并结合"阴阳脸"案例说明如何定位根因(模具磨损+贴片机老化导致的误差叠加)。作者总结

sundong_81的博客 59

Jetson AGX Orin和Drive AGX Orin相机的关联分析和编程指南

通过适当的相机接口和连接,以及使用适当的软件开发环境,开发人员可以在这些平台上实现相机功能。Jetson AGX Orin和Drive AGX Orin是NVIDIA推出的两款强大的计算平台,用于自动驾驶和人工智能应用。Jetson AGX Orin和Drive AGX Orin平台提供了强大的计算能力,使开发人员能够实现复杂的相机功能和算法。以上只是一些示例,Jetson AGX Orin和Drive AGX Orin平台提供了丰富的开发资源和工具,可用于实现各种复杂的相机应用。显示图像在一个窗口中。

CyberLynxO的博客 1121

PAT[乙级]1021-1025

PAT[乙级]1021-10251021 个位数统计 (15 分) [字符串处理]题目描述代码1022 D进制的A+B (20 分)[进制转换]题目描述代码分析:1023 组个最小数 (20 分)[字符串处理]题目描述分析:代码1024. 科学计数法 (20) [字符串处理]题目描述代码思路:题目描述代码 1021 个位数统计 (15 分) [字符串处理] 题目描述 代码 #include <bits/stdc++.h> using namespace std; string s; int n

weixin_52963747的博客 612

python基础:工作会用到的95%的基础python代码都在这了(万字详解!)

本文是一份Python编程语言的快速参考备忘单,涵盖了Python基础语法和常用数据类型。主要内容包括:Python入门指南(打印、变量声明)、内置数据类型(字符串、数值、列表、元组、集合、字典等)、控制结构(判断、循环)、函数定义、文件处理操作以及字符串操作方法(切片、循环遍历等)。这个备忘单特别适合初学者快速查阅Python基础语法,同时也提供了数据类型转换、f-string格式化字符串等实用技巧。通过简洁的代码示例展示了Python的基本语法规则和典型用法。

数据知道的博客 8160

PAT乙级_1025 反转链表_Python_AC解法_含疑难点

本文介绍了PAT乙级1025题"反转链表"的Python解法。作者采用字典存储节点数据,通过索引列表实现K长度子链的反转。关键优化点包括:使用sys.stdin快速输入、元组存储节点数据、join一次性输出,这些优化使总运行时间控制在250ms内。特别提醒:1)需处理游离节点,实际链表长度可能小于N;2)最后节点需单独处理next为-1;3)避免在反转时维护next指针以减少耗时。测试点5超时的原因在于反转操作和未优化的I/O处理,文章对比了不同实现方式的性能差异。

CongQianS1的博客 742

Agentic AI应用架构师如何提升AI应用的灵活性

可扩展性(Scalability):快速添加新功能或扩展任务范围(如Agent从“客服”扩展到“供应链管理”);可修改性(Modifiability):调整Agent的决策逻辑或动作策略,无需重构整个系统;鲁棒性(Robustness):在环境异常或数据噪声下保持性能稳定;自适应(Self-Adaptation):自主学习新场景,无需人工干预。状态空间(S):Agent能感知的所有内部/外部状态(如用户需求、环境数据);动作空间(A):Agent能执行的所有动作(如调用工具、发送消息);

项目管理的博客 583

【AI Agent】Hermes Agent解析

Hermes Agent:一个具备持久化学习能力的开源AI Agent框架 核心特点: 突破传统Agent的"无状态困境",通过记忆系统(SQLite+FTS5全文检索)实现跨会话经验积累 支持200+模型自由切换,11种模型家族和15+平台接入 五层架构设计(入口层、编排层、推理层、工具执行层、存储层)实现平台无关性 47+内置工具和动态技能沉淀机制,支持从任务执行中自动提炼可复用Skill 独特的四层记忆体系(会话/每日/长期/向量索引)和辩证式用户建模 与传统Agent对比: 具备自我进化能力,通过A

sysu_lluozh 940

1025 反转链表 (25 分) PAT乙级 C++/Python版

https://pintia.cn/problem-sets/994805260223102976/problems/994805296180871168 1025反转链表(25分) 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为 1→2→3→4→5→6,K为 3,则输出应该为 3→2→1→6→5→4;如果K为 4,则输出应该为 4...

玮智能的博客 1519

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

PAT乙级 1025 反转链表

把当时的代码放出来,大家共同学习,互相帮助 题目: 输入样例: 00100 6 4 00000 4 99999 00100 1 12309 68237 6 -1 33218 3 00000 99999 5 68237 12309 2 33218 输出样例: 00000 4 33218 33218 3 12309 12309 2 00100 00100 1 99999 99999 5 68237...

chongchujianghu3的博客 298

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Pat(Basic Level)Practice--1025(反转链表)

Pat1025代码 题目描述: 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。 输入格式: 每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总个数正整数N(5)、以及正整数K(

奋起的Coder。。。 2499

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【PAT_Python解】1025 反转链表

【代码】【PAT_Python解】1025 反转链表。

新时代先锋的博客 738

【PAT乙级】1025 反转链表

题目链接:1025反转链表 思路: 这题之前因为没有AC所以跳过了,现在回来补坑~ 数据结构部分: 很明显这题需要空间换时间的思路,使用数组快速随机访问,我是采用结构体数组保存的,我看其他大神也有用3个数组分别保存数据的,可能操作起来更加方便吧。个人觉得用结构体会让数据更加一体化便于管理,实现起来更加直观一些。 结构体内容:数据域data、指针域next均为int型。 按照题目要求数据量小于,因为我后面要使用头插法需要头节点,故我设置了一个100001大小的数组。 数据输入: ...

五百零一 105

Python PAT乙级1025反转链表 (25分)

给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即 最后不到 K 个元素不反转。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤10^​5)、以及正整数 K (≤N),即要求反转的子链结点的个数。结点的地址是 5 位非负整数,NULL 地 址用 −1 表示

qq_42344132的博客 382

[PAT 乙级]1025 反转链表

依旧觉得自己写的比较简单

2201_75385857的博客 564

PAT乙级合集——python实现(持续更新中~)

最近在巩固python编程能力,本文用于记录python实现的PAT乙级刷题索引,以及在刷题过程中总结的一些规则和经验~ 刷题建议:PAT乙级都是些简单的题目,如果是刷题的同学可以直接按照题号顺序刷即可~ 刷题笔记和规则整理: 合集: 乙级编号 标题 PAT 1001 害死人不偿命的(3n+1)猜想(15分) PAT 1002 写出这个数 (20分) PAT 1003 我要通过!(20分) PAT 1004 成绩排名 (20分) PAT 1005 继续(3n+1)猜想(25分

crayonjingjing的博客 1205

PAT乙级_合集_Python_AC解法_已完结至1125题

本文是针对PAT乙级考试Python解题的优化指南。作者发现虽然多数题目能顺利通过,但部分代码在提交时会出现错误或超时,而PAT系统不提供详细反馈。现有的Python解题资料较少且部分存在效率问题。文章旨在记录解题过程中的卡点、优化方法和最终AC代码,为使用Python的考生提供参考。目前优先更新前50题中较难的题目,后续会逐步补充其他题目。每道题将详细讲解解题思路以弥补代码注释不足的问题,帮助读者理解优化过程。

CongQianS1的博客 861
上一篇: Pat乙级1024题——科学计数法(Python)
下一篇: Pat乙级1026题——程序运行时间(Python)
coder_wu
博客等级 码龄8年 5粉丝 29原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值