LeetCode-easy-Length of Last Word

Length of Last Word

这道题很简单,一般来说有两种方法
第一种就是用栈的思想,从头到尾扫描,遇到字母压栈,而遇到空格就将之前空格的全部出栈。当然出栈也有前提,就是后续必须还有元素,且非空格元素才可出栈。
第二种就是从尾部进行扫描,遇到第一个字母就加一,再直接进行统计,遇到下一个空格或者head就结束。
第一种使用cpp实现(莫得办法,准备复试,所以第二种使用c语言)

class Solution {
public:
	int lengthLastWord(std::string s) {
		std::vector<char> stack;
		int count = s.size();
		for (int i = 0; i < count; i++) {
			if (s[i] != ' ') stack.push_back(s[i]);
			else if(i<count-1&&s[i+1]!=' ')stack.clear();//If string hava adquate gredient,and this gredient don't  the  space,can clear stack.
}
		return stack.size();
	}

};//望看到的人心里面轻嘲这个英语

以下是c语言版本,写的比我的cpp还臭

int lengthOfLastWord(char * s) {
	int length = 0;
	while (*s != '\0') {
		length++;
		s++;
	}//above all circulation length and s add ex-one.
	int len = 0;
	--length;
	--s;//subtract the one
	while (length>=0&&*s== ' ') {
		length--;
		s--;
	}
	while (length>=0&&*s!=' ') { 
		length--;
	    len++;
		s--;
	}
	return len;
}
posted @ 2020-01-06 21:56  Yekko  阅读(71)  评论(0编辑  收藏  举报