[华为机试练习题]19.字符串最后一个单词的长度

题目

代码

/*---------------------------------------
*   日期:2015-06-30
*   作者:SJF0115
*   题目:字符串最后一个单词的长度
*   来源:华为上机
-----------------------------------------*/
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

int LastWordLength(string str){
    int size = str.size();
    if(size == 0){
        return 0;
    }//if
    // 去除后导0
    int end = size - 1;
    while(end >= 0 && str[end] == ' '){
        --end;
    }//while
    int len = 0;
    while(end >= 0 && str[end] != ' '){
        ++len;
        --end;
    }//while
    return len;
}

int main(){
    string str;
    //freopen("C:\\Users\\Administrator\\Desktop\\c++.txt","r",stdin);
    while(getline(cin,str)){
        cout<<LastWordLength(str)<<endl;
    }//while
    return 0;
}
时间: 2015-06-30

[华为机试练习题]19.字符串最后一个单词的长度的相关文章

[华为机试练习题]43.在字符串中找出连续最长的数字串

题目 描述: 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回:如果存在长度相同的连续数字串,返回最后一个连续数字串: 注意:数字串只需要是数字组成的就可以,并不要求顺序,比如数字串"1234"的长度就小于数字串"1359055",如果没有数字,则返回空字符串("")而不是NULL! 样例输入 abcd12345ed125ss123058789 abcd12345ss54761 样例输出 输出123058789,函数返回值9 输出547

[华为机试练习题]61.找出字符串中第一个出现次数最多的字符

题目 描述: 找出字符串中第一个出现次数最多的字符 详细描述: 接口说明 原型: bool FindChar(char* pInputString, char* pChar); 输入参数: char* pInputString:字符串 输出参数(指针指向的内存区域保证有效): char* pChar:出现次数最多的字符 返回值: false 异常失败 true 输出成功 练习阶段: 初级 代码 /*--------------------------------------- * 日期:2015

[华为机试练习题]49.向升序单向链表中插入一个节点

题目 描述: 输入一个升序单向链表和一个链表节点,向单向链表中按升序插入这个节点. 输入为空指针的情况视为异常,另外不考虑节点值相等的情况. 链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 详细描述: 接口说明 原型: ListNode* InsertNodeToList(ListNode* pListHead, ListNode* pInsertNode); 输入参数: ListNode* pListHead 单向链表

[华为机试练习题]34.识别有效的IP地址和掩码并进行分类统计

题目 描述: 请解析IP地址和对应的掩码,进行分类识别.要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类. 所有的IP地址划分为 A,B,C,D,E五类 A类地址1.0.0.0~126.255.255.255; B类地址128.0.0.0~191.255.255.255; C类地址192.0.0.0~223.255.255.255; D类地址224.0.0.0~239.255.255.255: E类地址240.0.0.0~255.255.255.255 私网IP范围是: 10.0

[华为机试练习题]39.尼科彻斯定理

题目 描述: 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和. 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 题目类别: 循环 难度: 初级 运行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 整数m(取值范围:1-100) 输出: 尼科彻斯定理成立,输出m个连续奇数(格式:"7+9+11"):否则输出-1 样例输入: 3 样例输出: 7+9+11 代码 /*---------------------

[华为机试练习题]36.简单错误记录

题目 描述: 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号. 处理: 1. 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加: 2. 超过16个字符的文件名称,只记录文件的最后有效16个字符: 3. 输入的文件可能带路径,记录文件名称不能带路径. 题目类别: 字符串 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 一行或多行字符串.每行包括带路径文件名称,行号,以空格

[华为机试练习题]1.周期串问题

题目一[周期串问题] 如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期.例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3).字符串的长度小于等于100,由调用者保证. 接口说明 原型: int GetMinPeriod(char *inputstring); 输入参数: char * inputstring:字符串 返回值: int 字符串最小周期 代码一 /*-----------------------------------

[华为机试练习题]38.名字的漂亮度

题目 描述: 给出一个名字,该名字有26个字符串组成,定义这个字符串的"漂亮度"是其所有字母"漂亮度"的总和. 每个字母都有一个"漂亮度",范围在1到26之间.没有任何两个字母拥有相同的"漂亮度".字母忽略大小写. 给出多个名字,计算每个名字最大可能的"漂亮度". 题目类别: 字符串 难度: 初级 运行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 整数N,后续N个名字 N个字符串,每个

[华为机试练习题]71.一元多项式化简

题目 背景: 编程实现如下功能:对输入的一元多项式,进行同类项合并,并按指数降序排序,输出处理后的一元多项式. 说明: 多项式由若干个单项式组成,单项式之间为加.减(+,-)关系. 单项式指数字与字母幂的乘积构成的代数式.对一元多项式,字母只有一种. 同类项合并指将多项式中指数相同的单项式,系数经过加减求和,合并为一个单项式.按指数降序指多项式中,单项式按指数从大到小顺序相连. 格式说明 一元多项式输入输出时以字符串形式表示,格式如下 单项式之间用单个加减运算符相连,运算符:+,- 单项式由系数