N字形变换(麻烦的方法)

class Solution:
    def convert(self, s: str, numRows: int) -> str:
        #先判断z有多少隔开
        s_new=""
        index_now=0
        if len(s)<=numRows or numRows==1:
            return s
        for i in range(numRows-1,-1,-1):
            exchange=0
            index_exchange=index_now
            s_new+=s[index_now]
            #计算每一层的差距
            gap_buttom=int(1+(i-1)*2)
            gap_top=int(1+(numRows-i-2)*2)
            if i==numRows-1 or i==0:
                while index_exchange+int(1+(numRows-2)*2)+1<=len(s)-1:
                    s_new+=s[index_exchange+int(1+(numRows-2)*2)+1]
                    index_exchange+=int(1+(numRows-2)*2)+1
                index_now+=1
                continue
            while i!=numRows-1 and i!=0:
                if exchange==0:
                    if index_exchange+gap_buttom+1>len(s)-1:
                        index_now+=1
                        break
                    else:
                        s_new+=s[index_exchange+gap_buttom+1]
                        index_exchange+=(gap_buttom+1)
                        exchange=1
                else:
                    if index_exchange+gap_top+1>len(s)-1:
                        index_now+=1
                        break
                    else:
                        s_new+=s[index_exchange+gap_top+1]
                        index_exchange+=(gap_top+1)
                        exchange=0
        return s_new

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【零基础入门Python】Python参数

✍面向读者&#xff1a;所有人 ✍所属专栏&#xff1a;零基础入门Pythonhttps://blog.csdn.net/arthas777/category_12455877.html 目录 print&#xff08;&#xff09;中的Python结束参数 print&#xff08;&#xff09;中的Python|sep参数 Python的格式转换规则 使用格式…

Vue如何请求接口——axios请求

1、安装axios 在cmd或powershell打开文件后&#xff0c;输入下面的命令 npm install axios 可在项目框架中的package.json中查看是否&#xff1a; 二、引用axios import axios from axios 在需要使用的页面中引用 三、get方式使用 get请求使用params传参,本文只列举常用参数…

java中线程相关的面试题

什么是线程安全&#xff0c;造成线程安全的本质是什么&#xff1f; 什么是线程安全呢&#xff1f; 咱们初步去理解话记住一句话就行&#xff1a;如果一个对象可以安全地被多个线程同时使用&#xff0c;那它就是线程安全的。 为什么并发编程会导致线程不安全&#xff1f; 可见…

用户认证篇

文章目录 1. 如何生成用户认证token令牌1.1 相关表1.2 生成令牌逻辑1.3 最终结果 2. 如何认证用户token令牌2.1 前端组件2.2 TokenAuthenticationFilter2.3 获得登陆用户 3. 如何刷新用户认证 Token 令牌3.1 前端组件3.2 刷新令牌接口 4. 如何模拟用户认证token令牌5. 如何实现…

php学习03-php注释

<?php //单行注释 echo ;//单行注释//单行注释嵌套 /*** 多行注释* 多行注释不允许嵌套*/ $c 12; # 这也是单行注释 #嵌套 /*** 文档注释*/ class Util{/*** 方法注释* param int $num* return int*/function add($num){return 11$num;} }echo 这样会出错的//不会看打到?…

linux的主线程提前子线程退出以及线程分离

主线程提前退出 如果主线程没有等待子线程提前退出&#xff0c;可能会发生以下情况&#xff1a; 子线程继续运行&#xff1a;如果主线程退出&#xff0c;但子线程仍在执行任务&#xff0c;子线程将继续独立运行。子线程的生命周期不受主线程控制&#xff0c;直到子线程自行完成…

基于Springboot的留守儿童爱心网站(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的留守儿童爱心网站(有报告)。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring…

蓝牙物联网在智能家居中的应用前景

物联网智能家居系统是应用物联网技术&#xff0c;在传统家居环境下将各种零散无序的电器整合成统一整体&#xff0c;实现家电的全程自动控制&#xff0c;满足用户高效管理需求的一种新型家居模式。 其主要的子系统有家居感知系统、家庭网络系统、智能家居控制管理系统等&#x…

LINUX 嵌入式应用开发层细节知识(入职体验)

1. 后台进程 一些辅助监测的工作&#xff08;日志系统&#xff0c;OTA升级&#xff0c;云-本地中转) 进程可以设置为守护进程 nohup nohub、&、setsid nohup 是可以忽略所有信号&#xff0c;让程序进入后台进程模式。‘ 2. IPCS -ipc_index 查询IPC目前的使用情况 3.…

微信小程序开发学习(上强度):从0开始写项目

前置知识 1、配置插件 微信小程序 基础模板引入sass的两种方法_微信小程序使用sass-CSDN博客 之后在对应页面里新建一个scss文件&#xff0c;写css 2、注册小程序&#xff0c;有个自己的appid&#xff0c;不用测试号了 5.1.注册小程序账号获取appid及个人和企业版差异_哔哩…

Python入门学习篇(六)——for循环while循环

1 for循环 1.1 常规for循环 1.1.1 语法结构 for 变量名 in 可迭代对象:# 遍历对象时执行的代码 else:# 当for循环全部正常运行完(没有报错和执行break)后执行的代码1.1.2 示例代码 print("----->学生检查系统<------") student_lists["张三",&qu…

vue3项目 - Eslint 配置代码风格

Eslint 自定义配置 总结&#xff1a; Prettier &#xff08;代码规范的插件&#xff0c;格式化 &#xff09;---> 美观 Eslint &#xff08;规范、纠错、检验错误 &#xff09;-----> 纠错 首先&#xff0c;禁用 Prettier 插件&#xff0c;安装 ESLint 插件&#x…

模式识别与机器学习(十一):Bagging

1.原理 Bagging [Breiman, 1996a] 是井行式集成学习方法最著名的代表.从名字即可看出&#xff0c;它直接基于自助采样法(bootstrap sampling)。给定包含m 个样本的数据集&#xff0c;我们先随机取出一个样本放入采样集中&#xff0c;再把该样本放回初始数据集&#xff0c;使得…

使用互斥锁(Mutex)管理共享资源

在Go中确保并发安全性 并发是Go中的一个强大功能&#xff0c;它允许多个Goroutines&#xff08;并发线程&#xff09;同时执行。然而&#xff0c;伴随着强大的功能也带来了大量的责任。当多个Goroutines并发地访问和修改共享资源时&#xff0c;可能会导致数据损坏、数据竞争&a…

【matlab】绘制竖状单组渐变柱状图

【matlab】绘制竖状单组渐变柱状图 % matlab绘制渐变柱状图 clear;clc;close all; x1:100; a[]; for i1:length(x) if mod(i,2)0 i-i; end a[a i]; end close all; b0.8; for nm3:69 cmapload([‘D:\m…

2023年Top5搭建帮助中心工具集锦

随着企业知识管理的不断深化&#xff0c;帮助中心成为了一个越来越重要的组成部分。帮助中心是一个集成了企业知识、FAQ、常见问题解答、教程、使用指南等内容的在线平台&#xff0c;旨在为用户提供快速、准确的问题解答和自助服务。那么在这一年&#xff0c;有哪些搭建帮助中心…

Shell三剑客:awk(模式(正则表达式)和动作)

一、运算符 - * / % ^ ** 赋值 ?: C条件表达式 || 逻辑或 && 逻辑与 ~ 和 !~ 匹配正则表达式和不匹配正则表达式 < < > > ! 关系运算符 空格 连接 - 加&#xff0c;减 * / % 乘&#xff0c;除与求余 - ! 一元加&#xff0c;减和逻辑非 ^ *…

Debezium系列之:Debezium JDBC 连接器支持批量同步数据

Debezium系列之&#xff1a;Debezium JDBC 连接器支持批量同步数据 一、设置批次二、配置消费者最大轮询记录三、性能测试结果四、结论 一、设置批次 由于我们之前的版本主要关注核心功能&#xff0c;因此我们的最新版本致力于解决与连接器相关的主要痛点&#xff1a;性能。 …

电脑组件整理(持续更新...)

1、*芯片 CPU(承担着负责的运算)&#xff1b; 量大阵营&#xff1a; AMD &#xff5c; Intel i5 12400F 6核12线 7nm -- 1189元 r7 5700x 8核16线 7 nm -- 1500元&#xff1b; ARM采用的是RISC精简指令集计算、 主要应用于移动终端之中&#xff0c;类如手机&#xff0c…

电化学仿真的基础知识笔记

1 概述 电化学反应是一种特殊的化学反应&#xff0c;其能量转移形式为化学能和电能之间互相转换。根据能量转换方向&#xff0c;可分为两类&#xff1a; 原电池&#xff08;Galvanic cells&#xff09;&#xff1a;将化学能转化为电能&#xff0c;对外放电电解槽&#xff08;…