Leetcode in Java 848.Shifting Letters

英文題目:
We have a string S of lowercase letters, and an integer array shifts.
Call the shift of a letter, the next letter in the alphabet, (wrapping around so that 'z' becomes 'a').
For example, shift('a') = 'b', shift('t') = 'u', and shift('z') = 'a'.
Now for each shifts[i] = x, we want to shift the first i+1 letters of S, x times.
Return the final string after all such shifts to S are applied.
中文題目:
有一個由小寫字母組成的字符串 S葵腹,和一個整數(shù)數(shù)組 shifts磷醋。
我們將字母表中的下一個字母稱為原字母的 移位(由于字母表是環(huán)繞的, 'z' 將會變成 'a')工猜。
例如·摊趾,shift('a') = 'b'币狠, shift('t') = 'u',, 以及 shift('z') = 'a'砾层。
對于每個 shifts[i] = x 漩绵, 我們會將 S 中的前 i+1 個字母移位 x 次。
返回將所有這些移位都應(yīng)用到 S 后最終得到的字符串肛炮。


分析:

  • 題目定義了一個shift函數(shù)渐行,將字母按照字母表的順序轉(zhuǎn)換成下一個字母;題目給了一個shift數(shù)組铸董,shift[i]代表要對前i+1個字母作shift[i]次shift函數(shù)操作祟印。
  • 根據(jù)題目要求,我們應(yīng)該從后往前計算粟害,即最后一位應(yīng)該移動shift[len-1]次蕴忆,倒數(shù)第二位移動shift[len-1]+shift[len-2]次。
  • 所以這道題是典型的使用后綴和解決的題目悲幅,但是根據(jù)題意0 <= shifts[i] <= 10 ^ 9套鹅,我們應(yīng)該進(jìn)行%26次操作。
  • 最后還要完成字符類型和整形之間的轉(zhuǎn)換汰具,時間復(fù)雜度為O(n)卓鹿。

總結(jié)本題的考點在于:

  1. 后綴和
  2. 根據(jù)題意進(jìn)行取模運算(考慮到溢出情況)
  3. 字符類型與整數(shù)類型的轉(zhuǎn)換

class Solution {
    public String shiftingLetters(String S, int[] shifts) {
        char[] chars = S.toCharArray();
        int shift = 0;
        for (int i = shifts.length - 1; i >= 0; i--) {
            // 取模運算,防止溢出
            shift = (shift + shifts[i]) % 26;
            // 利用 int 進(jìn)行 shift 計算留荔,完成后轉(zhuǎn)回 char 類型
            chars[i] = (char)((chars[i] - 'a' + shift) % 26 + 'a');
        }
        return String.valueOf(chars);
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吟孙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杰妓,老刑警劉巖藻治,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巷挥,居然都是意外死亡桩卵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門倍宾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雏节,“玉大人,你說我怎么就攤上這事高职」痴В” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵初厚,是天一觀的道長。 經(jīng)常有香客問我孙技,道長产禾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任牵啦,我火速辦了婚禮亚情,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哈雏。我一直安慰自己楞件,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布裳瘪。 她就那樣靜靜地躺著土浸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪彭羹。 梳的紋絲不亂的頭發(fā)上黄伊,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機與錄音派殷,去河邊找鬼还最。 笑死,一個胖子當(dāng)著我的面吹牛毡惜,可吹牛的內(nèi)容都是我干的拓轻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼经伙,長吁一口氣:“原來是場噩夢啊……” “哼扶叉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤辜梳,失蹤者是張志新(化名)和其女友劉穎粱甫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體作瞄,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡茶宵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宗挥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乌庶。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖契耿,靈堂內(nèi)的尸體忽然破棺而出瞒大,到底是詐尸還是另有隱情,我是刑警寧澤搪桂,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布透敌,位于F島的核電站,受9級特大地震影響踢械,放射性物質(zhì)發(fā)生泄漏酗电。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一内列、第九天 我趴在偏房一處隱蔽的房頂上張望撵术。 院中可真熱鬧,春花似錦话瞧、人聲如沸嫩与。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽划滋。三九已至,卻和暖如春埃篓,著一層夾襖步出監(jiān)牢的瞬間古毛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工都许, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稻薇,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓胶征,卻偏偏與公主長得像塞椎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子睛低,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,342評論 0 2
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,030評論 0 2
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,453評論 0 13
  • 陪著老婆一起逛宜家案狠,好久都沒有買過家具了服傍,這次還是拖兒子的福,又買了一次家具骂铁!準(zhǔn)備搬到光谷去了吹零! 9-14工作 1...
    浦大魔王76閱讀 121評論 0 0
  • Apache的 Hadoop數(shù)據(jù)庫, 是一個分布式的拉庵、 可擴展的灿椅、 支持大數(shù)據(jù)存儲的數(shù)據(jù)庫。 當(dāng)需要對大數(shù)據(jù)進(jìn)行隨...
    金剛_30bf閱讀 217評論 0 1