左旋轉字串問題 字串逆置,迴圈次數去重

2021-10-08 16:01:20 字數 1059 閱讀 9243

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

做法:有效左移次數 < 字串長度 ===> num %= length

儲存第乙個,剩下的整體前移乙個,第乙個放在最後,完成一次移動,一次能移動,多次也可以

區域性逆置 再整體逆置

雙倍串(不推薦)

法一: 雙迴圈

class

solution

// i= len-1, i的下標已經是最後乙個位置

str[i]

= c;

} string leftrotatestring

(string str,

int n)

int step = n % str.

size()

;// 字串長度不用擔心為0了, 去重

for(

int i =

0; i < step; i++

)return str;}}

;

class

solution

} string leftrotatestring2

(string str,

int n)

int step = n % str.

size()

;// 逆置, 閉區間

reverse

(str,

0, step -1)

;// 下標從0開始, 前半部分字串長度的個數

reverse

(str, step, str.

size()

-1);

reverse

(str,

0, str.

size()

-1);

return str;}}

;

左旋轉字串(字串)

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

逆置字串問題

這類問題算是比較簡單的了,而我們的思路是從字串兩頭開始,交換內容。在這裡我介紹兩種方法。1.迴圈的方式 2.遞迴的方式 1 迴圈的方式很好理解,就是暴力地進行內容的交換,而交換的規則就是從begin和end兩頭進行內容交換 hehehe e.g.字串 l am a student.我們可以定義乙個指...

python字串逆置 字串逆置演算法

1,輸人 字串 123456 輸出 654321 注意 字元陣列不等於字串,只有當字元陣列結尾加上結束標誌 0 才是字串。所以字串用字元陣列來初始化時,結尾必須加上 0 比如 初始化字串 char ch 7 如下 include include include define maxsize 100 ...