博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小小c#算法题 - 3 - 字符串语句反转
阅读量:6251 次
发布时间:2019-06-22

本文共 1190 字,大约阅读时间需要 3 分钟。

题目:反转语句。

如I love    Beijing! 反转后输出 !Beijing    love I

特点是指反转单词的顺序,其他字符(这个可以自己指定)不反转。且不能用内置函数,如Split和Substring。

 

分析:我们需要保证一个单词的字母组成顺序不变,其他的字符(这个自己指定)直接反转即可。基本思想是整个语句在入栈的时候对每个字符做具体分析处理即可,然后出栈输出。

由于这道题的结构很简单,就省去使用栈的过程,我们直接从句末开始分析每个字符并处理输出。我用了一个list来存储特殊字符,这些字符直接反转即可,其他的字符要做单词的组成部分处理。如,可直接输出,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

 

    

 

转载于:https://www.cnblogs.com/CSharpSPF/archive/2012/04/05/2433015.html

你可能感兴趣的文章
C#设计模式之十一享元模式(Flyweight Pattern)【结构型】
查看>>
基于zookeeper简单实现分布式锁
查看>>
Makefile:160: recipe for target 'all' failed (Ubuntu 16.06 + Opencv3.2)解决办法
查看>>
a WebSite for MapXtreme2005 Crack
查看>>
几种函数调用方式
查看>>
【MySQL】MySQL 常用语法之锁表与解锁表
查看>>
【142】阿蛮歌霸使用技巧
查看>>
HTTP 请求报文 响应报文
查看>>
[转载] 程序员必看:请不要做浮躁的人 24法则
查看>>
JavaWeb_JavaEE_命名规则
查看>>
HDU 4010 Query on The Trees
查看>>
[PAL规范]SAP HANA PAL 数据处理四分位间距检测Inter-quartile Range Test编程规范IQRTEST...
查看>>
[HDU 1317]XYZZY[SPFA变形][最长路]
查看>>
Skip list--reference wiki
查看>>
解决Asp输出乱码问题
查看>>
1941设置站点模板,一生珍藏,所有玩具
查看>>
程序员面试题:问谁养蛇?
查看>>
黑马程序猿_try-catch-finally
查看>>
Atitit.android webview h5运行环境总结
查看>>
腾讯与唯品会笔试面试经历
查看>>