LeetCode演算法學習十 Z字形變換

2021-10-05 10:35:14 字數 932 閱讀 8396

將乙個給定字串根據給定的行數,以從上往下、從左到右進行 z 字形排列。

比如輸入字串為 "leetcodeishiring" 行數為 3 時,排列如下:

l   c   i   r

e t o e s i i g

e   d   h   n

之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如:"lciretoesiigedhn"。

請你實現這個將字串進行指定行數變換的函式:

string convert(string s, int numrows);

示例 1:

輸入: s = "leetcodeishiring", numrows = 3

輸出: "lciretoesiigedhn"

示例 2:

輸入: s = "leetcodeishiring", numrows = 4

輸出: "ldreoeiiecihntsg"

解釋:l     d     r

e   o e   i i

e c   i h   n

t     s     g

class solution:

def convert(self, s: str, numrows: int) -> str:

if numrows < 2:

return s

newlist = ['' for _ in range(numrows)]

flag = -1

start = 0

for i in s:

newlist[start] += i

if start == 0 or start == numrows - 1:

flag = -flag

start += flag

return ''.join(newlist)

LeetCode 演算法學習 2

longest substring without repeating characters given a string,find the length of the longest substring without repeating characters.example 1 input ab...

演算法學習(十)動態規劃!!!

1.先上一波官方解讀提提神 動態規劃 英語 dynamic programming,簡稱dp 是一種在數學 管理科學 電腦科學 經濟學和生物資訊學中使用的,通過把原問題分解為相對簡單的子問題的方式求解複雜問題的方法。動態規劃常常適用於有重疊子問題和最優子結構性質的問題。官方術語太多?不能理解?wha...

Leetcode演算法學習日誌 78 Subsets

given a set ofdistinctintegers,nums,return all possible subsets the power set note the solution set must not contain duplicate subsets.for example,ifn...