蓝蓝考研算法复试Day01——计算字符串最后一个单词的长度

题目描述

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
来源:牛客网华为机试题

输入描述

输入一行,代表要计算的字符串,非空,长度小于5000。

输出描述

输出一个整数,表示输入字符串最后一个单词的长度。

示例1

输入:Hello Day Day
输出:6
说明:最后一个单词

思路

先求字符串长度,再从字符串最后一个字母开始遍历,利用while循环,循环条件为该字母不是空格,定义一个int型变量count用来计算最后一个单词的长度,循环结束时输出count

具体实现

#include <iostream>
#include <string>
using namespace std;
int main () {
    string str;
    getline (cin, str); //getline接收包含空格在内的整行数据流,若用scanf则无法接收空格
    int count = 0, len = str.length() - 1;
    while (len >= 0 && str[len] != ' ') {
        len--;
        count++;
    }
    cout << count;
    return 0;
}
// 64 位输出请用 printf("%lld")
   

时间、空间复杂度

O(N)
O(1)

小结

C中一般使用字符数组char str[]来存放字符串,但使用字符数组有时会很麻烦,C++在STL中加入string类型,头文件为#include而不是#include<string.h>,还要在头文件下加"using namespace std;"此时要输入输出整个字符串,只能用cin cout而非scanf printf .故头文件中还有#include而非#include<stdio.h>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值