题解 | #字符串最后一个单词的长度#
字符串最后一个单词的长度
https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
int length=0;
bool a=false;
getline(cin,s); // 获取一行输入
for(int i=s.length()-1;i>=0;i--){//// 从字符串的最后一个字符开始向前遍历 [1]
if(s[i] == ' '){ //注意 这里是用i遍历s的每一个字符,s[i]是第i个字符
if(a) // 遇到空格并且已经找到了部分单词长度,说明已找到最后一个单词
break;
}else {
a=true;
length++;// 如果不是空格,则增加单词长度计数
}
}
cout<<length<<endl;
return 0;
}
// 64 位输出请用 printf("%lld")
[1] 在C++中,字符串的索引是从0开始的。这意味着对于一个长度为 n 的字符串,其第一个字符的索引是0,而最后一个字符的索引是 n-1。
当我们需要从字符串的末尾向前遍历时,我们需要从最后一个字符的位置开始,也就是索引 n-1。因此,在初始化循环变量 i 时,我们使用 str.length() - 1 来获取最后一个字符的索引。
具体来说,假设有一个字符串 "hello",其长度为5。那么:
- 第一个字符
h的索引是0。 - 最后一个字符
o的索引是4。
