剑指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; } }