当前位置: 首页 > news >正文

python 数据结构习题

旋转图像

给定一个n×n的二维矩阵表示一个图像。将图像顺时针旋转90度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。例如,给定matrix=[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为[[7,4,1],[8,5,2], [9,6,3]]。要求设计满足题目条件的如下方法: def rotate(self, matrix: List[List[int]]) -> None:

输入用例3 1 2 3 4 5 6 7 8 9

输出用例7 4 1 8 5 2 9 6 3

输入用例4 5 1 9 11 2 4 8 10 13 3 6 7 15 14 12 16

输出用例15 13 2 5 14 3 4 1 12 6 8 9 16 7 10 11

import sys

def rotate(matrix):

n = len(matrix)

for i in range(n): # 主对角线翻转

for j in range(n - i):

matrix[i][j], matrix[n - j - 1][n - i - 1] = matrix[n - j - 1][n - i - 1], matrix[i][j]

for i in range(n // 2): # 水平翻转

for j in range(n):

matrix[i][j], matrix[n - i - 1][j] = matrix[n - i - 1][j], matrix[i][j]

def matrixStr(M):

s = ''

for vec in M:

s += ' '.join(map(str, vec))

s += '\n'

return s

if __name__ == '__main__':

m = int(sys.stdin.readline())

A = []

for i in range(m):

A.append(list(map(int, sys.stdin.readline().split(' ')))) # 读入矩阵\n

rotate(A)

print(matrixStr(A))

实现strStr()

给定一个haystack字符串和一个needle字符串,在haystack字符串中找出needle字符串出现的第一个位置(从0开始),如果不存在则返回-1。例如,输入 haystack="hello",needle="ll",输出结果为2。要求设计满足题目条件的如下方法: def strStr(self, haystack: str, needle: str) -> int:

输入用例hello ll

输出用例2

输入用例aaaa bba

输出用例-1

import sys

def strStr(haystack, needle):

count = 0

for i in needle:

if i in haystack:

count = count + 1

if i not in haystack:

count = count - 1

print(count)

if __name__ == '__main__':

m = sys.stdin.readline()

f = sys.stdin.readline()

strStr(m,f)

螺旋矩阵II

给定一个正整数n,生成一个包含1到n

2

所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。例如,输入3,输出结果如下: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 要求设计满足题目条件的如下方法: def generateMatrix(self,n:int)->List[List[int]]:

输入用例12

输出用例[[1, 2, 3], [8, 9, 4], [7, 6, 5]]

输入用例6

输出用例[[1, 2, 3], [8, 9, 4], [7, 6, 5]]

class Solution:

def generateMatrix(self, n):

# 顺时针方向(右下左上)

dx = [0, 1, 0, -1]

dy = [1, 0, -1, 0]

dn = 0 # 方向指针\n

res = [[0] * n for _ in range(n)] # 初始化\n

x = y = 0 # 位置\n

for i in range(1, n * n + 1):

res[x][y] = i # 下一步位置\n

temp_x = x + dx[dn]

temp_y = y + dy[dn] # 判断下一步位置是否合理,若合理则更新位置,若不合理则改变方向并更新位置\n

if 0 <= temp_x < n and 0 <= temp_y < n and res[temp_x][temp_y] == 0:

x, y = temp_x, temp_y

else:

dn = (dn + 1) % 4

x += dx[dn]

y += dy[dn]

return res

test = Solution()

n = 3

test.generateMatrix(n)

print(test.generateMatrix(n))

相关文章:

python 数据结构习题

旋转图像给定一个nn的二维矩阵表示一个图像。将图像顺时针旋转90度。你必须在原地旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。例如&#xff0c;给定matrix[[1&#xff0c;2&#xff0c;3]&#xff0c;[4&#xff0c;5&#x…...

18、MySQL8其它新特性

文章目录1 MySQL8新特性概述1.1 MySQL8.0 新增特性1.2 MySQL8.0移除的旧特性2 新特性1&#xff1a;窗口函数2.1 使用窗口函数前后对比2.2 窗口函数分类2.3 语法结构2.4 分类讲解1 序号函数2 分布函数3 前后函数4 首尾函数5 其他函数2.5 小 结3 新特性2&#xff1a;公用表表达式…...

【Android笔记79】Android之接口请求库Retrofit的介绍及使用

这篇文章,主要介绍Android之接口请求库Retrofit的介绍及使用。 目录 一、Retrofit接口请求库 1.1、什么是Retrofit 1.2、Retrofit的使用 (1)引入依赖...

蓝桥杯 考勤打卡

问题描述 小蓝负责一个公司的考勤系统, 他每天都需要根据员工刷卡的情况来确定 每个员工是否到岗。 当员工刷卡时, 会在后台留下一条记录, 包括刷卡的时间和员工编号, 只 要在一天中员工刷过一次卡, 就认为他到岗了。 现在小蓝导出了一天中所有员工的刷卡记录, 请将所有到岗…...

逻辑回归

逻辑回归 在分类问题中&#xff0c;要预测的变量y为离散值&#xff08;y0~1&#xff09;&#xff0c;逻辑回归模型的输出变量范围始终在 0 和 1 之间。 训练集为 {(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\} {…...

CTFer成长之路之Python中的安全问题

Python中的安全问题CTF 1.Python里的SSRF 题目提示 尝试访问到容器内部的 8000 端口和 url path /api/internal/secret 即可获取 flag 访问url&#xff1a; http://f5704bb3-5869-4ecb-9bdc-58b022589224.node3.buuoj.cn/ 回显如下&#xff1a; 通过提示构造payload&…...

SpringBoot知识快速复习

Spring知识快速复习启动器自动装配ConfigurationImport导入组件Conditional条件装配ImportResource导入Spring配置文件ConfigurationProperties配置绑定Lombok简化开发dev-toolsyaml请求和响应处理静态资源规则与定制化请求处理-Rest映射请求处理-常用参数注解使用请求处理-Ser…...

SpringBoot+React博客论坛系统 附带详细运行指导视频

文章目录一、项目演示二、项目介绍三、项目运行截图四、主要代码一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBootReact框架开发的博客论坛系统。首先&#xff0c;这是一个前后端分离的项目&#xff0c;文章编辑器…...

C++ primer 之 extern

C primer 之 extern什么是声明什么是定义两者有什么区别ertern的作用什么是声明 就是使得名字为程序所知&#xff0c;一个文件如果想使用别处定义的名字就必须包含对那个名字的声明。 什么是定义 负责创建与名字关联的实体。 两者有什么区别 变量声明和声明都规定了变量的…...

Linux 练习二 (VIM编辑器 + GCC编译器 + GDB调试)

文章目录VIM命令思维导图GCC编译器1、GCC编译文件练习2、静态库动态库制作练习将此函数编译成动态库将此函数编译成静态库GCC优化选项 -OnGDB调试命令练习练习一&#xff1a;编写一个程序&#xff0c;通过gdb调试&#xff0c;使用到gdb的b&#xff0c;n&#xff0c;s&#xff0…...

python3 连接数据库 mysql PyMysql

python3PyMysql PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库 &#xff0c; 遵循 Python 数据库 API v2.0 规范 。 PyMySQL 安装 pip install PyMySQLPyMySQL 连接数据库 import pymysql pymysql.Connect(hostlocalhost,port 3306,user root,password **…...

昇腾AI新技能,还能预防猪生病?

国药集团动物保健股份有限公司&#xff08;简称“国药动保”&#xff09;是专业从事动物保健产品研发、生产和销售的国家高新技术企业&#xff0c;是国内少数几家具备新产品原创能力的动物保健企业。其中&#xff0c;猪圆环病毒灭活疫苗等市场份额位居行业前列。 “猪圆环病毒…...

模板方法模式(Template Method)

模式结构图 说明 基本方法是模板方法的组成部分。基本方法分为一下三种&#xff1a; 抽象方法 由抽象类声明&#xff0c;由其具体子类实现。C中就是纯虚函数。 具体方法 由抽象类或具体类声明并实现&#xff0c;子类可以进行覆盖也可以继承。C中是虚函数。 钩子方法 由抽象类…...

C C++ typedef的使用

一、为基本数据类型起别名 typedef int myint; myint x 5; "myint"是"int"的别名&#xff0c;可以使用"myint"来代替"int"声明变量&#xff0c;这个很好理解&#xff0c;但是也很少有人这么用吧。 二、为结构体起别名 …...

Laravel框架03:DB类操作数据库

Laravel框架03&#xff1a;DB类操作数据库一、概述二、数据表的创建与配置三、增删改操作1. 增加信息2. 修改数据3. 删除数据四、查询操作1. 取出基本数据2. 取出单行数据3. 获取一个字段的值4. 获取多个字段的值5. 排序6. 分页五、执行任意的SQL语句一、概述 按照MVC的架构&a…...

数据结构期末复习总结(前章)

作者的话 作为一名计算机类的学生&#xff0c;我深知数据结构的重要性。在期末复习前&#xff0c;我希望通过这篇博客给大家一些复习建议。希望能帮助大家夯实数据结构的基础知识&#xff0c;并能够更好地掌握数据结构和算法的应用。 一、绪论 数据&#xff1a;信息的载体&am…...

设计环形队列

文章目录1.思路分析1.1队列空满分析1.2出队分析2.循环队列设计1.思路分析 1.1队列空满分析 首先我们假设一个长度为4的环形队列 队头front 队尾rear 当队列为空时 frontrear 当队列满时 frontrear 所以我们无法判断队列是满的或者空的 因此我们多加入一个空间使队列长度为5&am…...

面向对象之-接口鉴权

1 需求 1.1 需求背景 为了保证接口调用的安全性&#xff0c;我们希望设计实现一个接口调用鉴权功能&#xff0c;只有经过认证之后的系统才能调用我们的接口&#xff0c;没有认证过的系统调用我们的接口会被拒绝。 2 需求分析 2.1 基础分析 对于如何做鉴权这样一个问题&…...

Python 多进程多线程线程池进程池协程

目录 一、线程与进程很简单的介绍 1.1 线程与进程的区别 二、多进程Process 2.1 多进程与多线程的区别 2.2 多进程为啥要使用队列 2.3 控制进程运行顺序 2.3.1 join &#xff0c; 2.3.1 daemon 守护进程 2.4 进程id 2.5 进程 存活状态is_alive() 2.5 实现自定义多…...

【自然语言处理】基于句子嵌入的文本摘要算法实现

基于句子嵌入的文本摘要算法实现人们在理解了文本的含义后&#xff0c;很容易用自己的话对文本进行总结。但在数据过多、缺乏人力和时间的情况下&#xff0c;自动文本摘要则显得至关重要。一般使用自动文本摘要的原因包括&#xff1a; 减少阅读时间根据摘要&#xff0c;选择自…...

fiddler抓包

一、工具介绍Fiddler是一个通过代理的方式来进行抓包工具&#xff0c;运行时会在本地建立一个代理服务&#xff0c;默认地址&#xff1a;127.0.0.1:8888。Fiddler开启之后&#xff0c;配置本机代理&#xff0c;再打开IE浏览器&#xff0c;IE的PROXY会自动变成127.0.0.1:8888&am…...

【Linux】网络套接字编程

前言 在掌握一定的网络基础&#xff0c;我们便可以先从代码入手&#xff0c;利用UDP协议/TCP协议进行编写套接字程序&#xff0c;明白网络中服务器端与客户端之间如何进行连接并且通信的。 目录 一、了解源目的IP、端口、网络字节序、套接字 端口号&#xff1a; 套接字&…...

break与continue关键字

1.概述 不知道大家有没有这样一种感受哈&#xff0c;有的时候容易混淆break语句和continue语句的用法&#xff0c;总是模棱两可&#xff0c;不敢确定自己是否使用正确了。正好&#xff0c;我们本篇的重点就是break和continue关键字的用法。 2.使用场景 Java中为啥会诞生break…...

kafka使用入门案例与踩坑记录

每次用到kafka时都会出现各种奇怪的问题&#xff0c;综合实践&#xff0c;下面汇总下主要操作步骤&#xff1a; Docker镜像形式启动 zookeeper启动 docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeperkafka启动 docker run --name kafka01 -p 9092:909…...

系统启动太慢,调优后我直呼Nice

问题背景最近在负责一个订单系统的业务研发&#xff0c;本来不是件困难的事。但是服务的启动时间很慢&#xff0c;慢的令人发指。单次启动的时间约在10多分钟左右&#xff0c;基本一次迭代、开发&#xff0c;大部分的时间都花在了启动项目上。忍无可忍的我&#xff0c;终于决定…...

java知识点

文章目录异常写法JVM加载反射访问private调用方法动态代理注解元数据&#xff1a;TargetRetention元注解泛型编写泛型擦拭法局限通配符无限定通配符(<?>)集合重写方法和实现类IO流字节与字符转换同步和异步可以设置编码的类Print*类Files时间与日期时区一种二种三种异常…...

文件的打开关闭和顺序读写

目录 一、文件的打开与关闭 &#xff08;一&#xff09;文件指针 &#xff08;二&#xff09; 文件的打开和关闭 二、文件的顺序读写 &#xff08;一&#xff09;fputc 1. 介绍 2. 举例 &#xff08;二&#xff09;fgetc 1. 介绍 2. 举例1 3. 举例2 &#xff08;三&…...

(十八)操作系统-进程互斥的软件实现方法

文章目录一、知识总览二、单标志法三、双标志先检查法四、双标志后检查法五、Peterson算法六、总结一、知识总览 二、单标志法 算法思想&#xff1a;两个进程在访问临界区后&#xff0c;会把使用临界区的权限转交给另一个进程。也就是说每个进程进入临界区的权限只能被另一个进…...

2023年三月份图形化一级打卡试题

活动时间 从2023年3月1日至3月21日&#xff0c;每天一道编程题。 本次打卡的规则如下&#xff1a; 小朋友每天利用10~15分钟做一道编程题&#xff0c;遇到问题就来群内讨论&#xff0c;我来给大家答疑。 小朋友做完题目后&#xff0c;截图到朋友圈打卡并把打卡的截图发到活动群…...

linux 防火墙管理-firewalld

什么是Firewalld 当前很多linux系统中都默认使用 firewalld&#xff08;Dynamic Firewall Manager of Linux systems&#xff0c;Linux系统的动态防火墙管理器&#xff09;服务作为防火墙配置管理工具。 “firewalld”是firewall daemon。它提供了一个动态管理的防火墙&#x…...

毕业设计做网站题目/seo搜索是什么

在node.js中有个专门处理与数据库连接操作的模块mongodb&#xff0c;由于这个模块只是对mongodb的操作做了一层浅封装&#xff0c;用起来不是很好用。如是出现了一个开源的第三方模块mongoose&#xff0c;mongoose是建立在mongodb基础之上的一个比mongodb更好用的模块。 Mongoo…...

中国最火的网站/免费网络推广渠道

#基于ip设置 server{ listen 80; server_name 192.168.116.129; location /{     root /usr/etc/ngin/html/ip;     index index.html;   } } #基于域名 server{   listen 80;   server_name z.com;   location /{     root z.com;     index index.ht…...

网站空间更换/常州网络推广平台

本文将简单介绍RSA在webshell中的使用&#xff0c;旨在帮助小白们快速制作自己的流量混淆工具。关于RSA援引百度百科对RSA的介绍&#xff1a;RSA是1977年由罗纳德李维斯特(Ron Rivest)、阿迪萨莫尔(Adi Shamir)和伦纳德阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省…...

百度做网站为什么上阿里云备案/旺道seo优化软件

简单的示例&#xff1a; makefile文件&#xff1a; LOCAL_PATH:$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:test-jniLOCAL_SRC_FILES : test-jni.cinclude $(BUILD_SHARED_LIBRARY) 如果有多个文件&#xff0c;可能有所不同吧&#xff0c;尚未尝试。 头文件&#xff1a;…...

赣州58同城网/整站seo外包

题目大意&#xff1a; 给你一个N个点的图&#xff0c;求1点到其他每个点最短路权值之和sum1&#xff0c;然后再求反向最短路&#xff08;其他所有点到1点最短距离&#xff09;之和sum2。输出sum1sum2 解题思路&#xff1a; 别人说的题意&#xff0c;正好最短路也忘了&#xff0…...

网站建设方案策划书/北京推广平台

nginx证书制作以及配置https并设置访问http自动跳转https 默认情况下ssl模块并未被安装&#xff0c;如果要使用该模块则需要在编译时指定–with-http_ssl_module参数&#xff0c;安装模块依赖于OpenSSL库和一些引用文件&#xff0c;通常这些文件并不在同一个软件包中。通常这个…...