讓我們來看看C#算法實現(xiàn)字符串反轉(zhuǎn)的一道面試題,使用C#實現(xiàn)字符串反轉(zhuǎn)算法。 C#算法實現(xiàn)字符串反轉(zhuǎn)詳細內(nèi)容如下:
這兩周看到了很多同學的回答,這里給出一些自己的建議,希望能對各位同學有用。 C#算法實現(xiàn)字符串反轉(zhuǎn)常見問題: 1. 面試算法題慣例是寫一個函數(shù),所以如果是在Main函數(shù)中完成的,或者只是將接受的字符串倒序輸出的,可以說沒有函數(shù)的思維,基本肯定over. 比如下面這種:
2. 同上,很多同學在方法中進行輸入和輸出,這個還是沒有函數(shù)的思維。最簡單的道理,大多數(shù)功能性函數(shù)的功能就是通過參數(shù)返回結(jié)果,類似上面的代碼,如果其他開發(fā)人員是在Web應用程序中調(diào)用這個函數(shù),你的結(jié)果卻是在控制臺輸出,那誰能看見結(jié)果呢?而且我只是說要輸出的字符串,沒說要輸出啊,你這都輸出了,調(diào)用者如果想自己控制輸出怎么辦?(除非是做某些測試有時會在方法里進行輸出到Log),在面試中如果寫出這樣的代碼基本也over. 3. 對參數(shù)的檢查。這個不是最重要的,但很重要。算法題按慣例是要對參數(shù)的進行一些必要的檢查的(如果是面試測試人員,對細節(jié)的考察就更重要了),而且請注意,我們可以拋出異常,讓調(diào)用者來決定如何處理異常。 4. 一般大公司的面試算法題,很少會讓你調(diào)用類庫的函數(shù)的(默認值)。這個題目如果就是調(diào)用Array.Reverse()完成的,肯定over。 最后,這道題目考察的其實就是很多人容易犯的錯誤,也是C#面試中的一個常見考點:String類與StringBuilder類的區(qū)別。所以只要代碼中出現(xiàn)在循環(huán)中string類的對象疊加的代碼,基本over。 比如下面這種:
當使用StringBuilder時,請注意,應在構(gòu)造StringBuilder對象時指明初始容量,否則默認容量是16個字符,當由于追加字符而超出默認容量時,就會分配一個新的串緩沖區(qū),大小是原緩沖區(qū)的兩倍。 C#算法實現(xiàn)字符串反轉(zhuǎn)參考答案:
有些同學使用char數(shù)組,我認為也可
C#算法實現(xiàn)字符串反轉(zhuǎn)的基本情況就向你介紹到這里,希望通過一道試題使你了解C#字符串反轉(zhuǎn)算法的使用和C#算法。 |
|