力扣第六题python
时间: 2023-11-06 08:00:56 浏览: 248
力扣第六题是关于将一个给定的字符串按照指定的行数进行Z字形排列的问题。可以使用python来实现此题。
首先,我们可以创建一个 numRows 长度的列表,用来保存每一行的字符。接下来,遍历给定的字符串 s,将字符放入对应的行中。当遍历到第 numRows - 1 行时,需要反向遍历行数,以实现 Z 字形排列。最后,将每一行的字符连接起来,即可得到最终结果。
以下是实现这个算法的示例代码:
```python
def convert(s, numRows):
if numRows == 1 or numRows >= len(s):
return s
rows = [''] * numRows
index, step = 0, 1
for char in s:
rows[index] += char
if index == 0:
step = 1
elif index == numRows - 1:
step = -1
index += step
return ''.join(rows)
```
相关问题
力扣14 Python
力扣14题是一个经典的算法题目,题目名称为"最长公共前缀"。给定一个字符串数组,要求找出这些字符串的最长公共前缀。
解题思路如下:
1. 首先判断数组是否为空,如果为空则返回空字符串。
2. 初始化最长公共前缀为数组中的第一个字符串。
3. 遍历数组中的每个字符串,将其与最长公共前缀进行比较。
4. 如果当前字符串不以最长公共前缀开头,则将最长公共前缀缩短为当前字符串与最长公共前缀的公共部分。
5. 继续遍历数组中的其他字符串,重复步骤4,直到遍历完所有字符串或者最长公共前缀为空字符串。
6. 返回最长公共前缀作为结果。
以下是Python的实现代码:
```python
def longestCommonPrefix(strs):
if not strs:
return ""
prefix = strs[0]
for i in range(1, len(strs)):
while strs[i].find(prefix) != 0:
prefix = prefix[:-1]
if not prefix:
return ""
return prefix
```
阅读全文