面試題58 反轉字串

2021-09-22 21:12:44 字數 927 閱讀 3294

題目一:翻轉單詞順序

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

//乙個乙個字母處理

class solution

if(tmp.size()) res = tmp + res;

return res;

}};

//翻轉str從s到e的部分

void reverseword(string &str, int s, int e)

string reversesentence(string str)

reverseword(str, s, e - 1); //區域性翻轉

}return str;

}

題目二:左旋轉字串

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

無力吐槽你們的做法了,這種ac,你們覺得面試能過嗎?這道題考的核心是應聘者是不是可以靈活利用字串翻轉。假設字串abcdef,n=3,設x=abc,y=def,所以字串可以表示成xy,如題幹,問如何求得yx。假設x的翻轉為xt,xt=cba,同理yt=fed,那麼yx=(xtyt)t,三次翻轉後可得結果。

class solution 

};

微軟面試題 反轉字串

這是網路流傳的 microsoft 的面試題目之一 編寫反轉字串的程式,要求優化速度 優化空間 因為最近一直很多關注演算法方面的實踐和研究,因此對這個問題進行了一些思考,給出了 5種實現方法 有兩種解法相關性比較大 解法一 第一次看到這題目,想到最簡單 最直覺的解法就是 遍歷字串,將第乙個字元和最後...

面試題58 題目二 左旋轉字串

面試題58 題目二 左旋轉字串 題目 定義字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部。如把字串 abcdefg 左旋轉2 位得到字串 cdefgab。思路 反轉三次字串 以 abcdefg 為例,我們可以把它分為 2部分。先分別翻轉這兩部分,於是就得到 bagfedc 接下來翻轉整個字...

劍指offer 面試題58 翻轉字串

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