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.

这题还是比较容易的,用正则表达式感觉更简单一点,代码如下:

import java.util.regex.*;
public class Solution {
    public int lengthOfLastWord(String s) {
        ArrayList<String> word_list = new ArrayList<String>();
        Pattern p = Pattern.compile("\\w+");//匹配正则表达式
        Matcher m = p.matcher(s);
        while(m.find()){
            word_list.add(m.group());
        }
        int size = word_list.size();
        //size==0表示没有找到任何单词
        if(size==0){
            return 0;
        }
        return word_list.get(size-1).length();
    }
}

 不用正则表达式代码:

public class Solution {
    public int lengthOfLastWord(String s) {
       if(s.length()==0){
           return 0;
       }
       char[] array = s.toCharArray();
       int size = array.length;
       ArrayList<String> list = new ArrayList<String>();
       String word = "";//临时存储一个单词
       int flag = 0;//flag==1时表示当前正在记录一个单词
       for(int i=0;i<size;i++){
           if(array[i]!=' '){
              word = word+array[i];
              flag = 1;//修改flag表示当前开始记录一个单词
           }
           //如果遇到空格或者循环结束则将flag置0,表示当前单词记录结束
           if(array[i]==' '||i==size-1){
               flag = 0;
           }
           //如果word非空并且flag==0则表示一个单词记录完毕并将其存入list中,同时word置空
           if(!word.isEmpty()&&flag==0){
               list.add(word);
               word = "";
           }
       }
       if(list.isEmpty()){
           return 0;
       }
       return list.get(list.size()-1).length();
    }
}

 

posted @ 2015-02-03 13:13  mrpod2g  阅读(99)  评论(0编辑  收藏  举报