剑指Offer的学习笔记(C#篇)-- 翻转单词的序列

题目描述

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?

一 . 题目分析

该题目和上一个反转字符串的题目有些相似,但又不同。可以这样理解,翻转字符串是翻转的一句话里面所有字母的顺序;而翻转单词则是翻转单词的顺序。

例如: oh yeah

翻转字符串: haey ho

翻转单词:yeah oh

翻转字符串用到一个关键词Remove;翻转单词直接定义了string[] array用于后续输出,且使用关键词.Split(' '),即以 ' ' 分割,注意使用该关键词的时候要using System。

二 .  代码实现

using System;
class Solution
{
    public string ReverseSentence(string str)
    {
        // write code here
        // 鲁棒判断
        if (str == null || str == "")
        {
            return "";
        }
        // 定义新数组 + 数组长度 + 最后输出数组
        string[] array = str.Split(' ');
        int len = array.Length;
        string result = array[len-1];
        // 数组为 1 的特殊判别
        if(len == 1)
        {
            return result;
        }
        // 循环判断
        for(int i = len-2;i>=0;i--)
        {
            result += " " + array[i];
        }
        // 输出
        return result;
    }
}

 

posted @ 2019-07-03 09:29  WeiMLing  阅读(414)  评论(0编辑  收藏  举报