1. 程式人生 > 其它 >LeetCode刷題16--最後一個單詞的長度

LeetCode刷題16--最後一個單詞的長度

技術標籤:刷題!!!leetcode字串演算法

題目描述

給你一個字串 s,由若干單片語成,單詞之間用空格隔開。返回字串中最後一個單詞的長度。如果不存在最後一個單詞,請返回 0 。

單詞是指僅由字母組成、不包含任何空格字元的最大子字串。
示例 :
輸入:s = “Hello World”
輸出:5

示例:
輸入:s = " "
輸出:0

1 <= s.length <= 104
s 僅有英文字母和空格 ’ ’ 組成

解題思路

int LastWordLength(string s)
{
	int count=0;
	for(int i=s.length()-1;i>=0;i--)
	{
		if(s[i]==' '&& count!=0)
		{
			break;
		}
		else if(s[i]!=' ')
		{
			count++;
		}
	}
	return count;
}
int main()
{
	string s1="Hello World";
	string s2="aa bb c     11 ";
	cout<<LastWordLength(s1)<<endl;
	cout<<LastWordLength(s2)<<endl;
	return 0;
}

結果:
在這裡插入圖片描述
分析:
1.反向遍歷字串。
2.如果字串元素為空格,且計數count不為0,說明此前遍歷已經找到最後一個字串中的元素。
3.如果字串中的元素不為空格,繼續遍歷尋找,表示已經找到字串中的元素,直到下次找到空格表示找完最後一組字串。

分析
string s2="aa bb c 11 ";
1.反向遍歷,不滿足s[i]==’ ‘&& count!=0也不滿足s[i]!=’ ‘,繼續遍歷。
2.直到找到第一個’1’,開始計數count++,繼續遍歷。
3.找到第二個’1’,count++,繼續遍歷,找到空格,此時count為2,break。