华为oj 字符串最后一个单词的长度
2016-01-07 22:53
288 查看
计算了一下,前前后后大概大概3个多月总算是把华为oj,初级中级的所有题目全部刷完了,先说说感受吧,在做的过程中其实一直想说一个字“烂”,题目描述不清晰,结果输出描述不清晰,测试用例很少,但是坚持下来了就会有收获,中间其实有很多时候想停下来的,但是还是那句话,既然做,就做好它吧!建议所有准备刷华为oj的同学们,先思考题目,有了整体思路,在看看底下的评论,有很多注意事项,之后会不定期地上传自己的一些程序,争取做到有解析,有注意事项!
话不多说,上题
此题只是简单的入门题整体没有任何难度,整体思路获取整行字符串,从后往前数,找到第一个空格,但是我个人认为还需要注意就是在字符串的最后如果有空格需要过滤(虽然测试用例中没有这种用例),例如(abcd空格空格),代码如下。
结论:这道题虽然简单,但是对于程序判断界线的完整性还是有一定考察的。
在另一个网站上看到了更方便的解法:
话不多说,上题
此题只是简单的入门题整体没有任何难度,整体思路获取整行字符串,从后往前数,找到第一个空格,但是我个人认为还需要注意就是在字符串的最后如果有空格需要过滤(虽然测试用例中没有这种用例),例如(abcd空格空格),代码如下。
#include <iostream> using namespace std; int main() { char str[128]; gets(str); int i=0; int length=strlen(str); if(length<=0) { cout<<i<<endl; return 0 ; } while(str[length-1]==' ') //过滤空格 length--; while(length>=1&&str[length-1]!=' ') //length>=1判断是必要的 { length--; i++; } cout<<i<<endl; return 0; }
结论:这道题虽然简单,但是对于程序判断界线的完整性还是有一定考察的。
在另一个网站上看到了更方便的解法:
#include <iostream> #include <cstring> #include <sstream> using namespace std; int main() { //方法一 string str, cur, pre; getline(cin, str); istringstream line(str); while (line >> cur) { pre = cur; } cout << pre.length() << endl; }结论:利用istringstream还是很巧妙的
相关文章推荐
- UML类图关系(泛化、继承、实现、依赖、关联、聚合、组合)
- 入门训练 Fibonacci数列
- MySQL安装及问题
- 递归经典案例汉诺塔 python实现
- Mac安装Office软件
- 【读书笔记】代码整洁之道(6)
- [读书笔记]C#学习笔记一: .Net Framwork
- Java集合---ArrayList的实现原理
- Java与C语法上的区别
- php.ini文件中的include_path设置
- [经验技巧] 路由mini安装OpenWRT源的Transmission插件,实现PT下载(需SSH)
- 4.10 VideoView,SurfaceView,MediaPlayer,
- 重写逻辑表达式
- css014 响应式web设计
- android基础回顾笔记1--四大组件
- 记一次DG搭建过程中备库ORA-00210,ORA-00202,ORA-27086错误
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- iOS开发之小知识
- Ubuntu环境下Redis的安装与JAVA连接测试
- Java 时间服务器demo之NIO实现