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

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

https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da

题目中要求我们求出字符串最后一个单词的长度,因为英语中每个单词以空格做分割,所以我们只需要找到每个空格的位置就能划分每个单词了,而字符串的最后一个空格划分了倒数第一个和倒数第二个单词。因此我们只需要找到倒数第一个空格的位置,这个位置后面就是最后一个单词。

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string words;

    //cin读取到token(空格或者是换行)结束 而 getline读取完一行 这里要选择getline
  	//cin >> words; 这里只能应对字符串中只有一个单词的情况
    getline(cin, words);

    size_t pos = words.rfind(" ");

    //有可能字符串就只有一个单词 字符串最后一个单词的长度就是字符串的长度
    //此时 是找不到空格的 这样的话 pos == npos
    //所以 就不做出以下判断
    //if (pos != string::npos)
    //{
    //    cout << (words.size() - (pos + 1)) << endl;
    //}

    //string类size()的值是字符串的长度 相当于字符串最后一个字母的后面一个位置
    //类似于\0的位置 但string不以\0结尾
    //而pos是最后一个单词前空格的位置 因此pos + 1就是最后一个单词第一个字母的位置
    //最后一个单词的长度就为 size - (pos - 1)
    cout << (words.size() - (pos + 1)) << endl;
    return 0;
}

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner  = new Scanner(System.in);
        String words = scanner.nextLine();

        int pos = words.lastIndexOf(" ");

        System.out.println(words.length() - (pos + 1));
    }
}

全部评论

相关推荐

11-17 23:00
南昌大学 Java
我要娶个什么名:10元一天 0元提成😂
点赞 评论 收藏
分享
12-18 22:04
已编辑
杭州电子科技大学 Java
程序员牛肉:我觉得是这样的,你现在有点病急乱投医了。你要问自己这样一个问题: 我找实习的目的是什么?为了挣钱还是增强个人实力?如果是为了挣钱那没得说,如果我是为了增强个人实习,那我异地去一个小厂实习真的有收益吗?这个收益是否大过我参加学校的项目或者自学?我记得你们杭电有那种实验室专门负责运维学校的项目的。 找实习只是一个手段而已,不要把他变成目的。不要病急乱投医。
实习简历求拷打
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务