Length of Last Word (leetCode 58)

来源:互联网 发布:c语言入门 txt下载 编辑:程序博客网 时间:2024/03/29 08:13

题目如下:
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.

public class Solution {    public static   int lengthOfLastWord(String s) {            if(s.length()==0||s.equals(" ")){                return 0;            }            //判断字符串中“ ”的下标,如果字符串中不存在,则返回值为-1            if(s.indexOf(" ")==-1){                return s.length();            }            String[] ss = s.split(" ");            //ss.length== 0为了防止字符串全由空格组成            if(ss.length == 0 || ss[ss.length-1].equals(" ")){                return 0;            }            return ss[ss.length-1].length();        }        public  static void main(String[] args){            String s ="                  ";            int len = lengthOfLastWord(s);            System.out.println(len);        }}

最开始没有考虑到字符串全为空格的情况,造成了下标溢出。采用以上这种方式的大概运行时间为325ms.
又从网上查找了其他方式,发下如下方式只需要250ms:

public class Solution {    public static   int lengthOfLastWord(String s) {            if (s != null && !s.trim().equals("")) {                  String[] arr = s.trim().split(" ");                  int length = arr[arr.length - 1].length();                  return length;              }              return 0;         }        public  static void main(String[] args){            String s ="                  ";            int len = lengthOfLastWord(s);            System.out.println(len);        }}

又对我的代码中不需要判断的条件去掉,达到的速度也在250ms左右

public class Solution {    public static   int lengthOfLastWord(String s) {            String[] ss = s.split(" ");            //ss.length== 0为了防止字符串全由空格组成            if(ss.length == 0 || ss[ss.length-1].equals(" ")){                return 0;            }            return ss[ss.length-1].length();        }        public  static void main(String[] args){            String s ="                  ";            int len = lengthOfLastWord(s);            System.out.println(len);        }}
0 0
原创粉丝点击