给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
“strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。”
输入:s = "Hello World" 输出:5 解释:最后一个单词是“World”,
输入:s = " fly me to the moon " 输出:4 解释:最后一个单词是“moon”,长度为4。
方法一:
由字符串的后面遍历,当遇到字符时,length++,为空格且length不为0时结束。
int lengthOfLastWord(char * s)
{
int length=0;
int i;
for(i=strlen(s)-1;i>=0;i--)//strlen c的库函数,字符串开头,中间某个位置直到\n截止计数
{
if(s[i]!=' ')length++;
if(s[i]==' '&&length!=0)break;
}
return length;
}
方法二:
由字符串头开始遍历,遇到不为' '计数,为' 'length置0,但解决不了最后字母后面为' ';则加了辅助变量m,将每一次的计数存在m中,若最后一个字母的后面为空格可以直接返回m值。
int lengthOfLastWord(char * s)
{
int length=0;
int m=0;//辅助变量
int i;
for(i=0;i