劍指offer 左旋轉字串 (Java)

2021-09-11 01:42:48 字數 657 閱讀 5275

題目:組合語言中有一種移位指令叫做迴圈左移(rol),現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s=」abcxyzdef」,要求輸出迴圈左移3位後的結果,即「xyzdefabc」。是不是很簡單?ok,搞定它!

思路:把字串看成兩部分,要左移的n位分為一部分,剩下的分為一部分,先翻轉第一部分 後翻轉第二部分 最後整體翻轉

特殊情況:空字串

注意:1.翻轉方法的寫法(最好在引數裡確定翻轉範圍);

2.字元陣列的長度:s.length,字串的長度:s.length();

3.輸入為字串,特殊情況考慮其長度為0就可以,不用討論null,返回值為string,當陣列長度為0時,返回「」,而不是null;

4.字串轉化為陣列用.tochararray()方法,陣列轉化成字串,用string str = new string(s),不能直接tostring(); 

public class solution 

public void reverse(char s,int i,int j)

}}

收穫:

這道題看似是移動字元,其實是翻轉字串實現的,要記住這類方法。知識遷移能力呀!

劍指offer 左旋轉字串

題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!class s...

劍指offer 左旋轉字串

題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!思路 先擷取下...

劍指offer 左旋轉字串

題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!利用線性代數公...