劍指offer 翻轉單詞順序VS左旋轉字串

2022-08-10 06:36:09 字數 1224 閱讀 3476

例如輸入字串」i am a student. 」,則輸出」student. a am i」。

第一步翻轉句子中所有的字元。比如翻轉「i am a student. 」中所有的字元得到」.tneduts a m a i」,此時不但翻轉了句子中單詞的順序,連單詞內的字元順序也被翻轉了。第二步再翻轉每個單詞中字元的順序,就得到了」student. a am i」。這正是符合題目要求的輸出。

public

class

test

public

static

string reversesentence(string str)

else

if( end == chstr.length || chstr[end] == ' ' )

else

}return

string.valueof(chstr);

}public

static

void reverse(char ch, int start, int

end)

while(start }

}

比如輸入字串」abcefg」和數字 2,該函式將返回左旋轉 2 位得到的結」cdefab」。

以」abcdefg」為例,我們可以把它分為兩部分。由於想把它的前兩個字元移到後面,我們就把前兩個字元分到第一部分,把後面的所有字元都分到第二部分。我們先分別翻轉這兩部分,於是就得到」bagfedc」。接下來我們再翻轉整個字串, 得到的」cde 也 ab」同 lj 好就是把原始字串左旋轉 2 位的結果。

public

class

test

public

static string leftrotatestring(string str,int

n)

char ch =str.tochararray();

reverse(ch, 0, n - 1);

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

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

return

string.valueof(ch);

}public

static

void reverse(char ch, int start, int

end)

while(start }

}

劍指Offer 翻轉單詞順序

題目描述 牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a stu...

劍指offer 翻轉單詞順序

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...

劍指Offer 翻轉單詞順序

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...