小小c#算法题 - 3 - 字符串语句反转
生活随笔
收集整理的這篇文章主要介紹了
小小c#算法题 - 3 - 字符串语句反转
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目:反轉(zhuǎn)語句。
如I love??? Beijing! 反轉(zhuǎn)后輸出 !Beijing??? love I
特點是指反轉(zhuǎn)單詞的順序,其他字符(這個可以自己指定)不反轉(zhuǎn)。且不能用內(nèi)置函數(shù),如Split和Substring。
?
分析:我們需要保證一個單詞的字母組成順序不變,其他的字符(這個自己指定)直接反轉(zhuǎn)即可。基本思想是整個語句在入棧的時候?qū)γ總€字符做具體分析處理即可,然后出棧輸出。
由于這道題的結(jié)構(gòu)很簡單,就省去使用棧的過程,我們直接從句末開始分析每個字符并處理輸出。我用了一個list來存儲特殊字符,這些字符直接反轉(zhuǎn)即可,其他的字符要做單詞的組成部分處理。如,可直接輸出,B則作為Beijing的組成部分,要特殊處理。
代碼(c#):
View Code ?1?????????static?void?Main(string[]?args)?2?????????{
?3?????????????List<char>?chars?=?new?List<char>();
?4?????????????chars.Add('?');
?5?????????????chars.Add('.');
?6?????????????chars.Add('!');
?7?????????????chars.Add(',');
?8?????????????string?str?=?"I?love????Shanghai,?and?I?love?Beijing!";
?9?????????????Console.WriteLine(Reverse(str,?chars));
10?????????}
11?
12?????????private?static?string?Reverse(string?str,?List<char>?chars)
13?????????{
14?????????????string?result?=?"";
15?????????????string?word?=?"";????????????
16?????????????char[]?strArray?=?str.ToCharArray();
17?????????????for?(int?i?=?strArray.Length?-?1;?i?>=?-1;?i--)
18?????????????{
19?????????????????if?(i?==?-1)
20?????????????????{
21?????????????????????result?+=?word;
22?????????????????????break;
23?????????????????}
24?
25?????????????????if?(chars.Contains(strArray[i]))
26?????????????????{
27?????????????????????if?(word?!=?"")
28?????????????????????{
29?????????????????????????result?+=?word;
30?????????????????????????word?=?"";
31?????????????????????}
32?????????????????????
33?????????????????????result?+=?strArray[i];????????????????????
34?????????????????}
35?????????????????else
36?????????????????{
37?????????????????????word?=?strArray[i]?+?word;????????????????????
38?????????????????}
39?????????????}
40?
41?????????????return?result;
42?????????}
?
輸出:
!Beijing love I and ,Shanghai??? love I
?
????
?
轉(zhuǎn)載于:https://www.cnblogs.com/CSharpSPF/archive/2012/04/05/2433015.html
總結(jié)
以上是生活随笔為你收集整理的小小c#算法题 - 3 - 字符串语句反转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Please let us know i
- 下一篇: (转)javascript匿名函数