Java篇—左旋轉字符串

題目描述:

彙編語言中有一種移位指令叫做循環左移(ROL),現在有個簡單的任務,就是用字符串模擬這個指令的運算結果。對於一個給定的字符序列S,請你把其循環左移K位後的序列輸出。例如,字符序列S=“abcXYZdef”,要求輸出循環左移3位後的結果,即“XYZdefabc”。

思路分析:

n作爲字符串左旋的位置,其實就是將字符串[0,n)放置在字符串[n,length)的後面,從而組成新的字符串。

代碼實現:

public class Exercise21 {
    public static void main(String[] args) {
        String str = "helloworld";
        String temp = leftRotateString(str,5);
        System.out.println(temp);
    }
    //簡便寫法
    private static String leftRotateString1(String str, int n) {
        //如果該字符串爲空或者它的長度小於等於1,直接返回str
        if(str == null || str.length() <= 1){
            return str;
        }
        //保存str的長度
        int len = str.length();
        //將str追加到str後面
        str += str;
        //截取從n到len+n的字符串
        return str.substring(n,len + n);
    }
    private static String leftRotateString(String str, int n) {
        //如果該字符串爲空或者它的長度小於等於1,直接返回str
        if(str == null || str.length() <= 1){
            return str;
        }
        //保存str的長度
        int len = str.length();
        //創建StringBuilder對象,對字符串進行更改
        StringBuilder sb = new StringBuilder();
        //截取從n到str.length()  ,也可以寫成sb.append(str.substring(n));
        sb.append(str.substring(n,len));
        //截取從0到n的字符串,添加到sb中
        sb.append(str.substring(0,n));
        //調用sb的toString()方法返回字符串即可
        return sb.toString();
    }
}

題目總結:

左旋轉字符串其實就是字符串的截取+拼接

心靈雞湯:任何的收穫都不是白得來的,也不是天上掉下來,更不是運氣好,所謂的運氣好,只不過是花了別人不願意花的時間,費了別人懶得費的功夫,吃了別人吃不下的苦,受了很多委屈跟磨難才見到光明的,所以,纔會越努力越幸運!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章