LintCode 旋轉(zhuǎn)字符串

題目

給定一個(gè)字符串和一個(gè)偏移量,根據(jù)偏移量旋轉(zhuǎn)字符串(從左向右旋轉(zhuǎn))

樣例
對(duì)于字符串 "abcdefg".
offset=0 => "abcdefg"
offset=1 => "gabcdef"
offset=2 => "fgabcde"
offset=3 => "efgabcd"

分析

旋轉(zhuǎn)字符串在原地旋轉(zhuǎn),利用了一個(gè)技巧,旋轉(zhuǎn)三次可以達(dá)到效果,具體看代碼分析即可。這種旋轉(zhuǎn)的技巧需要熟練掌握

代碼

public class Solution {
    /**
     * @param str: an array of char
     * @param offset: an integer
     * @return: nothing
     */
    public void rotateString(char[] str, int offset) {
        // write your code here
        if (str == null || str.length == 0)
            return;
            
        offset = offset % str.length;
        reverse(str, 0, str.length - offset - 1);
        reverse(str, str.length - offset, str.length - 1);
        reverse(str, 0, str.length - 1);
    }
    
    private void reverse(char[] str, int start, int end) {
        for (int i = start, j = end; i < j; i++, j--) {
            char temp = str[i];
            str[i] = str[j];
            str[j] = temp;
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。 難度:容易 要求: 給定一個(gè)字符串和一個(gè)偏移量,根據(jù)偏移量旋...
    柒黍閱讀 1,632評(píng)論 0 1
  • 給定一個(gè)字符串和一個(gè)偏移量,根據(jù)偏移量旋轉(zhuǎn)字符串(從左向右旋轉(zhuǎn))您在真實(shí)的面試中是否遇到過(guò)這個(gè)題?Yes樣例對(duì)于字...
    DayDayUpppppp閱讀 478評(píng)論 0 0
  • 題目 描述 給定一個(gè)字符串和一個(gè)偏移量,根據(jù)偏移量旋轉(zhuǎn)字符串(從左向右旋轉(zhuǎn)) 樣例 對(duì)于字符串 "abcdefg"...
    悠揚(yáng)前奏閱讀 512評(píng)論 0 0
  • Node.js Buffer(緩沖區(qū)) JavaScript 語(yǔ)言自身只有字符串?dāng)?shù)據(jù)類(lèi)型,沒(méi)有二進(jìn)制數(shù)據(jù)類(lèi)型。但在...
    FTOLsXD閱讀 622評(píng)論 0 2
  • OpenGLES-理論準(zhǔn)備 GitHub地址 https://github.com/softwarefaith/O...
    踐行者閱讀 1,057評(píng)論 0 1

友情鏈接更多精彩內(nèi)容