LeetCode Online Judge 题目C# 练习 - Length of Last Word
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.
For example,
Given s = "Hello World",
return 5.
1 public static int LengthofLastWord(string s) 2 { 3 int ret = 0; 4 int temp = 0; 5 int index = 0; 6 while (index < s.Length) 7 { 8 if (s[index] == ' ') 9 { 10 ret = temp == 0 ? ret : temp; 11 temp = 0; 12 } 13 else 14 temp++; 15 index++; 16 } 17 18 ret = temp == 0 ? ret : temp; 19 20 return ret; 21 }
代码分析:
从前往后。
1 public static int LengthofLastWordOpt(string s) 2 { 3 int ret = 0; 4 int temp = 0; 5 int index = s.Length - 1; 6 while (index >= 0) 7 { 8 if (s[index] == ' ') 9 { 10 ret = temp == 0 ? ret : temp; 11 temp = 0; 12 13 if (ret > 0) 14 return ret; 15 } 16 else 17 temp++; 18 index--; 19 } 20 21 ret = temp == 0 ? ret : temp; 22 23 return ret; 24 }
代码分析:
从后往前,计算到最后一个立即返回, 不知道为什么,在LeetCode上test,好像这个performance还差一点。