組合語言中有一種移位指令叫做迴圈左移(rol),現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s=」abcxyzdef」,要求輸出迴圈左移3位後的結果,即「xyzdefabc」。是不是很簡單?ok,搞定它!
分析:1.自己的思路
分為前後兩個字串,然後兩者拼接起來。。可能比較傻乎乎吧,但是通過了。
2.劍指offer上的推薦思路
與翻轉句子的題思路類似,採用「逆序法」,首先將前半部分反轉,再將後半部分反轉,最後將整體反轉。
注意:
//如果只是讀取字串中的某個字元,只需要str.charat(i);
//如果需要改變字串,則先str.tochararray()把字串變成char陣列再去處理。
//c = str.tochararray();//將字串變數轉換為字元陣列
//str= string.valueof(c );//將字元陣列轉換為字串
public class solution
int count=n%len;
reverse(c,0,count-1);
reverse(c,count,len-1);
reverse(c,0,len-1);
return string.valueof(c);
}public void reverse(char c,int begin,int end)
return;}}
劍指offer 左旋字串
字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串 abcdefg 和數字2,該函式將返回左旋轉兩位得到的結果 cdefgab 示例 1 輸入 s abcdefg k 2 輸出 cdefgab 示例 2 輸入 s lrloseumgh k...
劍指offer 左旋轉字串
題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!class s...
劍指offer 左旋轉字串
題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!思路 先擷取下...