劍指offer打卡 左旋轉字串

2021-10-02 21:23:47 字數 807 閱讀 1259

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

1.這種寫法比較直球。更簡便的是用substring,以n為分割點直接擷取兩段字串,換位後拼接。

public class solution 

char str1=str.tochararray();

char str2=new char[str1.length];

for(int i=0;i2.更新一種解法

看到cyc的題解裡說使用額外空間的話可能會有相應的扣分,所以第一種解法作罷。

先將 "abc" 和 "xyzdef" 分別翻轉,得到 "cbafedzyx",然後再把整個字串翻轉得到 "xyzdefabc"。

public class solution

char chars=str.tochararray();

reverse(chars,0,n-1);

reverse(chars,n,chars.length-1);

reverse(chars,0,chars.length-1);

return new string(chars);

}public void reverse(char chars,int i,int j)

}public void swap(char chars,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,搞定它!利用線性代數公...