题解 | #字符串最后一个单词的长度#
字符串最后一个单词的长度
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是反向迭代器,那么返回的是一个负值。
#华为笔试题#