1025 反转链表 (25分)

在这里插入图片描述

输入样例:

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
68237 6 -1

解题心得:

  1. 本题两个注意点,1⃣️不是所有结点都是在链表上;2⃣️反转后链表中每个结点的next仍指向反转后的下一个结点,一定要审题!
  2. 第5个测试点超时,python本身的效率是一方面,代码可能还有优化的空间,但是没有必要,既然选择使用python说明对效率要求不是特别高,也可以把python代码过分优化,就失去了代码的优雅性。针对pat的题目而言,绝大部分用python没有问题,对于部分超时问题,请把python代码用c++或者c翻译一遍就没问题;
  3. 每次做pat提交错误时,都是无从下手->然大悟->原来如此->如此简单。
# -*- coding: utf-8 -*-
import sys
from collections import defaultdictdef get_k_reverse(first_addr, nodes, k):addr = first_addrsorted_nodes = []while addr != '-1':sorted_nodes.append(nodes[addr])addr = nodes[addr][2]# print('debug:', sorted_nodes)i = 0n = len(sorted_nodes)loops = n // kwhile i < loops:for j in reversed(range(i * k, (i + 1) * k)):print(' '.join(sorted_nodes[j][0:2]), end=' ')if j - 1 >= i * k:print(sorted_nodes[j - 1][0])elif i + 1 < loops:print(sorted_nodes[(i + 2) * k - 1][0])elif i + 1 == loops and (i + 1) * k < n:print(sorted_nodes[(i + 1) * k][0])else:print('-1')i += 1for j in range(i * k, n):print(' '.join(sorted_nodes[j][0:2]), end=' ')if j + 1 < n:print(sorted_nodes[j + 1][0])else:print('-1')if __name__ == '__main__':first_addr, n, k = sys.stdin.readline().split()n = int(n)k = int(k)nodes = defaultdict(list)for i in range(n):node = sys.stdin.readline().split()nodes[node[0]] = nodeget_k_reverse(first_addr, nodes, k)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站如何启用SSL安全证书?IIS7启用新建Https:/

网站使用SSL&#xff0c;通过SSL证书申请&#xff0c;然后导入之后。我们需要对网站进行设置才能正常使用SSL证书&#xff0c;具体如何操作让网站启用SSL呢&#xff0c;本经验以一个网站添加SSL主机头的方式为例来&#xff0c;网站启用SSL服务器安全证书。(如果没有证书的&…

js乱码解决

mmp最近在写项目&#xff0c;引入js文件&#xff0c;f12控制台老给我报红色的错误&#xff0c; 点开&#xff0c;是引入js文件中文乱码。。。反手myeclipse打开js文件&#xff0c;也正常啊&#xff0c;中文没乱码。。。 解决办法 打开js文件&#xff0c;设置为带bom的utf-8编码…

Mapreduce执行过程分析(基于Hadoop2.4)——(一)

1 概述 该瞅瞅MapReduce的内部运行原理了&#xff0c;以前只知道个皮毛&#xff0c;再不搞搞&#xff0c;不然怎么死的都不晓得。下文会以2.4版本中的WordCount这个经典例子作为分析的切入点&#xff0c;一步步来看里面到底是个什么情况。 2 为什么要使用MapReduce Map/Reduce&…

spring配置数据源

spring配置数据源1. 什么是数据源连接池2. 手动创建数据源&#xff08;c3p0&#xff0c;druid&#xff09;2.1 导入数据库连接驱动&#xff0c;数据源pom坐标2.2 创建数据源2.3 配置jdbc.properties, 解耦拿到数据源3. spring配置数据源3.1 bean方式创建数据源13.2 bean方式创建…

centos8安装

一. 下载centos centos下载 下载镜像版 mini版本 二&#xff0c;安装centos8 虚拟机安装 可 打开虚拟机安装centos 选择下载的镜像 配置磁盘大小 配置资源 配置虚拟机内存&#xff0c;处理器个数等. 安装成功后&#xff0c;也可配置

一、Insertion sort

1. 问题 2. 算法 2.1 伪代码 2.2 算法思想 2.3 手工演示 2.4 Python实现 《算法导论》一书数组默认从111开始&#xff0c;这种方式适合算法分析&#xff0c;从000开始适合程序实现&#xff0c;为了能和伪代码一致便于对比&#xff0c;后边所有的Python实现中数组均从111开始。…

Hibernate学习笔记

Hibernate是什么&#xff1a; Hibernate 架构&#xff1a; 下载、安装、必要的 jar包、环境CLASSPAST的设置&#xff08;此步骤省略&#xff09; Hibernate框架的使用步骤&#xff1a;1、创建Hibernate的配置文件&#xff08;hibernate.cfg.xml&#xff09;2、创建持久化类&…

二、Merge sort

1 问题 2 算法 2.1 伪代码 2.2 算法思想 2.3 手工演示 2.4 Python实现 # -*- coding: utf-8 -*- import sysdef merge(A, p, q, r):n1 q - p 1n2 r - qL [0] * (n1 2)R [0] * (n2 2)for i in range(1, n11):L[i] A[pi-1]for j in range(1, n21):R[j] A[qj]L[n11] 6…

三、递归树分析法

1 问题 2 解决思路 使用递归树猜想一个上界&#xff0c;使用归纳法证明上界也是下界。 2.1 使用递归树&#xff08;recursion tree&#xff09;猜想结论&#xff08;不严谨&#xff09; 使用递归树两点&#xff1a;1⃣️逐行展开&#xff1b;2⃣️逐行相加&#xff1b; 逐行…

html5input表单标签新属性

初探h5一&#xff0c;h5 新增表单类型二&#xff0c;新增表单属性三&#xff0c;code demo一&#xff0c;h5 新增表单类型 •email 邮箱地址•url 网络地址•number 数字框•range 滑块•Date pickers (date, month, week, time, datetime, datetime-local) 日期时间框•search…

关于java的JIT知识

1.JIT的工作原理图 工作原理 当JIT编译启用时&#xff08;默认是启用的&#xff09;&#xff0c;JVM读入.class文件解释后&#xff0c;将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码。 通常javac将程序源码编译&#xff0c;转换成java字节码&#xff0c;JVM通过解释…

Storage 使用

关于web项目数据存储1. 存储种类2. localStorage/sessionStorage2.1 概念2.2 api的使用3. 学生curd测试localStorage针对客户端存储讲 ——storage1. 存储种类 1. 分为服务器端和客户端的存储 2. 服务器端&#xff1a;1. 内存存储(临时)application session request pageConte…

spring 基于xml方式配置aop

目录什么是aop模拟aop配置什么是aop 什么是aop 作用 在程序运行期间&#xff0c;在不修改源码的情况下对方法进行功能增强 优势 减少重复代码 提高开发效率 并且便于开发2.aop关键概念 模拟aop 目标接口 package com.lovely.proxy.aop;public interface TargetInterface …