Saturday, December 21, 2013

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

Our solution:
We base our solution on a DFA with two states:

and we present the input in reverse order, to get the last word length.

The code assuming that the input contains only letters and spaces as mentioned is:

public class Solution {
    public int lengthOfLastWord(String s) {
        int count = 0;
        int state = 0;
        for(int i = s.length()-1; i>=0; i--)
        {
            switch (state)
            {
                case 0: if(s.charAt(i) != ' ')
                        {
                            state = 1;
                            count++;
                        }
                        break;
                case 1: if (s.charAt(i) != ' ')
                            count++;
                        else
                            return count;
            }
        }
        return count;
    }
}

No comments :

Post a Comment