问题
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3927 访问。
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
输入: "Hello World"
输出: 5
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
Input: "Hello World"
Output: 5
示例
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3927 访问。
public class Program {
public static void Main(string[] args) {
var s = "world";
var res = LengthOfLastWord(s);
Console.WriteLine(res);
s = "hello csharp";
res = LengthOfLastWord2(s);
Console.WriteLine(res);
s = "a ";
res = LengthOfLastWord3(s);
Console.WriteLine(res);
Console.ReadKey();
}
private static int LengthOfLastWord(string s) {
s = s.Trim();
if(s.Length == 0) return 0;
for(var i = s.Length - 1; i >= 0; i--) {
if(s[i] == ' ') return s.Length - i - 1;
}
return s.Length;
}
private static int LengthOfLastWord2(string s) {
s = s.Trim();
var split = s.Split(' ');
if(split.Length == 0) return 0;
return split[split.Length - 1].Length;
}
private static int LengthOfLastWord3(string s) {
s = s.Trim();
return s.Length - s.LastIndexOf(' ') - 1;
}
}
以上给出3种算法实现,以下是这个案例的输出结果:
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3927 访问。
5
6
1
分析:
应当认为以上3种算法的时间复杂度均为: ,而不是
,因为用到了部分运行库,而它们的时间复杂度都是线性的。
本文探讨了三种不同的算法来确定字符串中最后一个单词的长度,通过实例演示了如何使用这些算法,并分析了它们的时间复杂度。
300

被折叠的 条评论
为什么被折叠?



