题解 | #字符串最后一个单词的长度#

字符串最后一个单词的长度

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是反向迭代器,那么返回的是一个负值。

#华为笔试题#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务