將乙個給定字串根據給定的行數,以從上往下、從左到右進行 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...