zoukankan      html  css  js  c++  java
  • 小小c#算法题 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

        

  • 相关阅读:
    [ 转载 ] Mysql 远程连接+开放80和3306端口 常用配置
    [ 转载 ] Mysql 数据库常用命令
    [ 转载 ] Centos 安装mysql后启动失败 出现 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
    [2020多校联考]手套
    [2020多校联考]糖果机器
    [2020多校联考]染色相邻的边
    [2020多校联考]四个质数的和
    [2020多校联考]简单题
    [2020多校联考]MC
    [2020多校联考]进化
  • 原文地址:https://www.cnblogs.com/CSharpSPF/p/2433015.html
Copyright © 2011-2022 走看看