zoukankan      html  css  js  c++  java
  • 反转单词(C#实现)


    using System;
    using System.Collections.Generic;

    namespace ReverWords
    {
        
    class MainClass
        {
            
    public static void Main(string[] args)
            {
                Console.WriteLine(ReverseWords(
    "Hello World"));
                Console.Read();
            }
            
    public static string ReverseWords(string array)
            {
                 
    if (string.IsNullOrEmpty(array))
                 {
                      
    throw new ArgumentException("");
                 }
                 
    int arrLen = array.Length;
                 
    char[] strNew = new char[arrLen + 1];
                 
                 
    //全部反转 
                 for (int index = 0; index < arrLen; index++)
                 {
                     strNew[index] 
    = array[arrLen - 1 - index];
                 }
                 strNew[arrLen] 
    = ' '//为了复原最后一个单词,添加一个辅助空格 
                 int iStart = 0, iEnd = 0;
                 
    char tmpChar;+
                 
    //复原单词 
                 for (int Index = 0; Index < arrLen + 1; Index++)
                 {
                    
    //Index指向空格 
                    if (strNew[Index] == ' ')
                    {
                        iEnd 
    = Index - 1;
                        
    while (iStart < iEnd)
                        {
                            tmpChar 
    = strNew[iStart];
                            strNew[iStart] 
    = strNew[iEnd];
                            strNew[iEnd] 
    = tmpChar;
                            iStart
    ++;
                            iEnd
    --;
                        }
                            iStart 
    = Index + 1;//跳过空格 
                    }
                    
    else if (strNew[Index] == '!' | strNew[Index] == ',' | strNew[Index] == '.' | strNew[Index] == ';')
                    {
                       iStart 
    = Index + 1;//跳过标点 
                    }
                }
                
    //合成字符串 
                array = string.Empty;
                
    for (int index = 0; index < strNew.Length - 1; index++)//去掉辅助的空格 
                {
                   array 
    += strNew[index];
                }
                
    return array;
           }
        }
    }
  • 相关阅读:
    Java必会之多线程
    第一周JVM核心技术-工具与GC策略
    JVM核心技术(第一篇)
    SpringCloudAlibaba使用seata做分布式事务
    Go中的interface(接口)
    快排与堆排
    优先队列原来不难!带你手写一个
    【LeetCode】557. 反转字符串中的单词 III
    【LeetCode】214. 最短回文串
    【LeetCode】17. 电话号码的字母组合(回溯)
  • 原文地址:https://www.cnblogs.com/kakaliush/p/2059305.html
Copyright © 2011-2022 走看看