Leetcode 848 字母移位 C

2021-10-09 04:16:33 字數 972 閱讀 5703

有乙個由小寫字母組成的字串 s,和乙個整數陣列 shifts。

我們將字母表中的下乙個字母稱為原字母的 移位(由於字母表是環繞的, 『z』 將會變成 『a』)。

例如·,shift(『a』) = 『b』, shift(『t』) = 『u』,, 以及 shift(『z』) = 『a』。

對於每個 shifts[i] = x , 我們會將 s 中的前 i+1 個字母移位 x 次。

返回將所有這些移位都應用到 s 後最終得到的字串。

輸入:s = "abc", shifts = [3,5,9]

輸出:"rpl"

解釋:

我們以 "abc" 開始。

將 s 中的第 1 個字母移位 3 次後,我們得到 "dbc"。

再將 s 中的前 2 個字母移位 5 次後,我們得到 "igc"。

最後將 s 中的這 3 個字母移位 9 次後,我們得到答案 "rpl"。

1 <= s.length = shifts.length <= 20000

0 <= shifts[i] <= 10 ^ 9

由題意可知,shifts[i]=x會把s的前i+1個字元移位x次,也就是說s第i位字元可以看成shifts[i~n-1]的共同影響。因此我們先對移動步數累加,遍歷s的字元,移動一次後就將影響數-shift[i]。

對於移動次數,我們將次數除以26取模即可。只是會分為兩種情況,一種是直接向後移;一種可能會從a開始。詳細過程見**

string shiftingletters

(string s, vector<

int>

& shifts)

string ans;

for(

int i=

0; i<

min(n,len)

; i++

)return ans;

}

Leetcode 848 字母移位 C

有乙個由小寫字母組成的字串 s,和乙個整數陣列 shifts。我們將字母表中的下乙個字母稱為原字母的 移位 由於字母表是環繞的,z 將會變成 a 例如 shift a b shift t u 以及 shift z a 對於每個 shifts i x 我們會將 s 中的前 i 1 個字母移位 x 次。...

848 字母移位

有乙個由小寫字母組成的字串s,和乙個整數陣列shifts。我們將字母表中的下乙個字母稱為原字母的 移位 由於字母表是環繞的,z 將會變成 a 例如 shift a b shift t u 以及shift z a 對於每個shifts i x,我們會將s中的前i 1個字母移位x次。返回將所有這些移位都...

848 字母移位

有乙個由小寫字母組成的字串 s,和乙個整數陣列 shifts。我們將字母表中的下乙個字母稱為原字母的 移位 由於字母表是環繞的,z 將會變成 a 例如 shift a b shift t u 以及 shift z a 對於每個 shifts i x 我們會將 s 中的前 i 1 個字母移位 x 次。...