Z字变换Python解法
2021/12/7 20:46:46
本文主要是介绍Z字变换Python解法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:
P A H N
A P L S I I G
Y I R
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。
请你实现这个将字符串进行指定行数变换的函数:
string convert(string s, int numRows);
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zigzag-conversion
例:
输入:s = "PAYPALISHIRING", numRows = 4
输出:"PINALSIGYAHRPI"
解释:
P I N
A L S I G
Y A H R
P I
# 解析:给定多少行,就初始化多少空字符,然后将给定字符串从第一个字符开始依次加入到每个空字符中,当加入到最后一个就反向遍历,遍历到第一个就再正向遍历
class Solution(object): def convert(self, s, numRows): """ :type s: str :type numRows: int :rtype: str """ if numRows == 1 or numRows >= len(s): return s # 只有一列的情况直接返回原字符串 r, j, k = ['']*numRows, 0, 1 # 初始化几个空字符串,子字符串下标,计数器 for i in s: # 遍历每一个字符 r[j] += i # 添加到当前子字符串中 j += k # 换字符串 if j == 0 or j == numRows-1: k=-k # 当遍历到头或尾时改变遍历方向 return ''.join(r) # 直接将字符串连起来
这篇关于Z字变换Python解法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门