java循环左一_左旋转字符串(Java)-循环Index方式
左旋轉字符串(Java)-循環Index方式
題目要求
? 匯編語言中有一種移位指令叫做循環左移(ROL),現在有個簡單的任務,就是用字符串模擬這個指令的運算結果。對于一個給定的字符序列S,請你把其循環左移K位后的序列輸出。例如,字符序列S=”abcXYZdef”,要求輸出循環左移3位后的結果,即“XYZdefabc”。是不是很簡單?OK,搞定它!
我的思考
?我們通過觀察發現,左移幾位,就是開始從哪位輸出,但是輸出的長度還是字符串本身的長度,也就是說,左移3位,那么就是從原始字符串的index=3處開始輸出,輸出的個數仍然是字符串長度的個數,這樣肯定就越界了,所以,我們在取index的時候用index = index % str.length;讓其在超出了字符串長度就返回到最前邊取值。就循環起來了、
我的代碼
package jianzhioffer;
/**
* @author jiyongjia
* @create 2020/6/25 - 14:43
* @descp: 左旋字符串
* 匯編語言中有一種移位指令叫做循環左移(ROL),現在有個簡單的任務,就是用字符串模擬這個指令的運算結果。
* 對于一個給定的字符序列S,請你把其循環左移K位后的序列輸出。
* 例如,字符序列S=”abcXYZdef”,要求輸出循環左移3位后的結果,即“XYZdefabc”。是不是很簡單?OK,搞定它!
*/
public class P13_LeftRotateString {
public static void main(String[] args) {
String str = "abcdefg";
String string = LeftRotateString(str, 2);
System.out.println(string);
}
public static String LeftRotateString(String str,int n) {
int length = str.length();
StringBuilder builder = new StringBuilder();
while(length>0){
builder.append(str.charAt(n++%str.length()));
//減1
length--;
}
return builder.toString();
}
}
測試輸出
輸入:"abcdefg" ,左移2位
輸出:
總結
以上是生活随笔為你收集整理的java循环左一_左旋转字符串(Java)-循环Index方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一年超长续航 !HUAWEI Tag防丢
- 下一篇: 苹果iPhone 14 Pro Max价