题解 | #字符串最后一个单词的长度#
字符串最后一个单词的长度
https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string str;
getline(cin, str);
auto reverseIt = find(str.rbegin(), str.rend(), ' ');
// cout << *reverseIt << endl;
auto begin = str.rbegin();
// cout << *begin << endl;
int size = str.length();
int dist = abs(distance(reverseIt, str.rbegin()));
// cout << dist << endl;
if(reverseIt != str.rend()){
printf("%d", dist);
}
else{
printf("%d", size);
}
}
// 64 位输出请用 printf("%lld")
通过这道题复习了C++标准库String部分的用法
C++标准库主要包括两个部分,第一是C++ 标准库的核心部分,包含了一些常见功能,如<iostream>、<string>、<vector>、<algorithm>、<cmath>。 第二部分是C++ 标准库的标准模板库STL,包括容器(vector、list、map 等)、迭代器、算法(sort、find、transform 等)、函数对象、智能指针等组件。
std::find(first, last, value)返回的是一个指向找到字符位置的迭代器,从迭代器范围 [first, last) 中查找值为 value 的元素,如果找到,返回指向第一次出现该元素的迭代器,如果未找到,返回 last。
rbegin() 返回一个指向容器中最后一个元素的反向迭代器。rend() 返回一个指向容器中第一个元素前面位置的反向迭代器。
这两个函数通常与算法库中的算法(如 std::find)结合使用,以在容器中执行反向搜索或迭代,返回的是一个反向迭代器。
distance(first, last),从迭代器范围 [first, last) 中查找距离,如果两个iterator是反向迭代器,那么返回的是一个负值。
#华为笔试题#
查看1道真题和解析