Question

Formatted question description: https://leetcode.ca/all/58.html

58. 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.

Algorithm

Preprocess the input string first, remove the spaces at the beginning and the end, and then use a counter to accumulate the length of the non-space string, and clear the counter when it encounters a space.

Code

Java

public class Length_of_Last_Word {

	public class Solution_no_extra_space { // one scan
	    public int lengthOfLastWord(String s) {
	        if (s == null || s.length() == 0) {
	            return 0;
	        }

	        int count = 0;
	        for (int i = s.length() - 1; i >= 0; i--) {

	            if (count == 0 && s.charAt(i) != ' ') { // skip spaces
	                count++;
	            } else if (count != 0 && s.charAt(i) == ' ') {
	                break;
	            } else if (('a' <= s.charAt(i) && s.charAt(i) <= 'z') || ('A' <= s.charAt(i) && s.charAt(i) <= 'Z')) {
	                count++;
	            }
	        }

	        return count;

	    }
	}

	public class Solution {
	    public int lengthOfLastWord(String s) {

	        if (s == null || s.length() == 0) {
	            return 0;
	        }

	        String[] array = s.split(" "); // @note: if input is string with spaces “ “, the array length is 0

	        if (array.length == 0) {
	            return 0;
	        } else {
	            return array[array.length - 1].length();
	        }

	    }
	}

}

All Problems

All Solutions