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

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

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

#华为笔试题#
全部评论

相关推荐

牛客532105025号:教育背景、个人技能太长,项目没有。粗看没有内容,细看大杂烩。没有获奖啥的吗,个人技能感觉像是几分钟写出来的。简历还有很大的进步空间
点赞 评论 收藏
分享
02-21 23:22
已编辑
重庆大学 Java
神哥不得了:神哥来啦~还是非常不错的。需要注意的是项目的话建议把编号换一下,把前面那个一和二删掉,然后再把123那种换成点,项目的话应该用这两个项目也问题不大,毕竟你的学历还是挺好的,如果换上两个高质量项目的话,获得面试的比例会大一点,不过这两个项目的话应该吃透,也可以找到面试,八股的话就建议先把高频top50的八股多巩固几遍,别看那些假高频题目就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务