Length of Last Word

Problem: 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.

Analysis:

There are two ways to solve the problem. First one is using the Java built in String method split. Quite a cheating way to do it.


public class Solution {
    public int lengthOfLastWord(String s) {
        String[] S = s.split(" ");
        if (S.length == 0) return 0;
        else return S[S.length-1].length();
    }
}

Second way is to use a counter like a ‘normal person’.


public class Solution {
    public int lengthOfLastWord(String s) {
        if (s == null || s.length() == 0 || (s.length() == 1 && s.charAt(0) == ' ')) return 0;
        
        int right = s.length() - 1;
        int len = 0;
        
        while (right >= 0 && s.charAt(right) == ' ') {
            right --;
        }
        
        while (right >= 0 && s.charAt(right) != ' ') {
            len++;
            right--;
        }
        
        return len;
    }
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s