微軟演算法100題26 左旋轉字串

2022-04-03 10:06:32 字數 631 閱讀 1473

26.左旋轉字串

題目:定義字串的左旋轉操作:把字串前面的若干個字元移動到字串的尾部。

如把字串abcdef 左旋轉2 位得到字串cdefab。請實現字串左旋轉的函式。

要求時間對長度為n 的字串操作的複雜度為o(n),輔助記憶體為o(1)

思路:先反轉整個字串 -> fedcba 在分別反轉各個子字串 fedc - ba -> cdef - ab

1

package

com.rui.microsoft;23

public

class

test26_leftrotatestring 910

public

static string leftrotate(string s, int

from)

2324

private

static

string reverse(string s)

33return

string.copyvalueof(as);34}

3536

private

static

void swap(char a, int i, int

j)41 }

微軟100題 26 左旋轉字串

題目 定義字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部。如把字串abcdef左旋轉2位得到字串cdefab。請實現字串左旋轉的函式。要求時間對長度為n的字串操作的複雜度為o n 輔助記憶體為o 1 分析一 如果不考慮時間和空間複雜度的限制,最簡單的方法莫過於把這道題看成是把字串分成前後兩...

微軟面試100題 左旋字串

定義字串的左旋操作 將字串前面的若干個字元移動到字串的尾部 如 abcde 左旋2位 cdeab 思路 ab ba cde edc baedc cdeab 分3部分反轉 public static void leftstr 1 stringbuilder str,int k private stat...

26 左旋轉字串

題目 定義字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部。如把字串abcdef左旋轉2位得到字串cdefab。請實現字串左旋轉的函式。要求時間對長度為n的字串操作的複雜度為o n 輔助記憶體為o 1 分析 一 如果不考慮時間和空間複雜度的限制,最簡單的方法莫過於把這道題看成是把字串分成前後...