java 翻转单词_单词翻转 - SegmentFault 思否
题目来源
《编程之法》 第一章 举一反三 习题
题目描述
输入一个英文句子,翻转句子中单词的顺序。要求单词内字符的顺序不变,句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如,若输入“I am a student.” 则输出“student. a am I”;
注意:句子中可能出现连续多个空格如“ I am a student.” 此时翻转结果需要一致,即只有一个空格
思路
三步翻转法的退化版
自身翻转“I am a student.” 翻转为“I ma a .tneduts”
全部翻转“I ma a .tneduts”翻转为“student. a am I”
实现
class Solution {
public:
string pre_process(string &s) {
string result = "";
int len = s.length();
int head_no_blank = 0;
int tail_no_blank = len - 1;
//remove the head blankspace
while(s[head_no_blank++] == ' ');
//remove the tail blankspace
while(s[tail_no_blank--] == ' ');
//remove the middle blankspace
for (int i = head_no_blank; i <= tail_no_blank; i++) {
if (s[i] == ' '){
result.push_back(' ');
while (s[++i]==' ');
i--;
}else{
result.push_back(s[i]);
}
}
return result;
}
void reversestring(string &s, int start,int end) {
if (start >= s.length()) return;
while (start < end) {
swap(s[start],s[end]);
start ++;
end --;
}
}
string reverseWords(string s) {
s = pre_process(s);
int start = 0;
int len = s.length();
//reverse every word
for (int i = 0; i < len; i++) {
if (s[i] == ' '){
reversestring(s,start,i-1);
start = i + 1;
}
}
//reverse the last one
reversestring(s,start,len - 1);
//reverse all
reversestring(s,0,len-1);
return s;
}
};
int main(){
std::cout<
return 0;
}
java 翻转单词_单词翻转 - SegmentFault 思否相关推荐
- java表驱动法索引访问_表驱动法 - SegmentFault 思否
在我们平时的开发中,if else是最常用的条件判断语句.在一些简单的场景下,if else用起来很爽,但是在稍微复杂一点儿的逻辑中,大量的if else就会让别人看的一脸蒙逼. 如果别人要修改或者新 ...
- java大麦_大麦大 - SegmentFault 思否
通过这个教程,我想告诉你在 React 中如何使用 state 和 effect 这两种 hooks 去请求数据.我们将使用众所周知的 Hacker News API 来获取一些热门文章.你将定义属于 ...
- java - websocket配合spring-security使用token认证_个人文章 - SegmentFault 思否
使用框架介绍 spring boot 1.4.3.RELEASE spring websocket 4.3.5.RELEASE spring security 4.1.3.RELEASE sockjs ...
- python之父去面试-面试题_个人文章 - SegmentFault 思否
1 Spring Bean是什么? 在spring中由Spring创建和管理的对象称为bean, bean有相关的特性,例如懒加载,作用域,生命周期这些. 懒加载就是延迟加载,启动的时候,会创建所有对 ...
- python页面转图片_网页转图片_技术分享 - SegmentFault 思否
将一段文字转成图片,比如常用的长微博工具 这里用 PHP 来处理. text2pic composer require dsgygb/text2pic touch test.php require ' ...
- node.js - Nodejs 分布式事务_个人文章 - SegmentFault 思否
事务是恢复和并发控制的基本单位,保证 ACID:原子性.一致性.隔离性.持久性. 对于全是异步的 Nodejs 而言, 并不适合做事务操作: 代码书写上: try ... catch ... 是写给人 ...
- python质因子分解_质因子分解_个人文章 - SegmentFault 思否
质因子分解的问题就是给定一个n使得n能够分解为多个因子的乘积形式,并且相同因子用指数形式表示: 例如180=2^23^25; 对于这个问题,很好理解,我们的目的就是寻找其因子,通常的方法也就是从0开始 ...
- java9 gc log参数迁移_个人文章 - SegmentFault 思否
序 本文主要研究一下java9 gc log参数的迁移. 统一JVM及GC的Logging java9引进了一个统一的日志框架,对gc log的输出进行了统一的配置. 相关JEP(JDK Enhanc ...
- 网易云信入选《SegmentFault 思否 2019 中国技术品牌影响力企业榜单》!
近日,SegmentFault 思否作为中国最大的新一代开发者社区,依托数百万开发者用户行为数据,及科技企业技术品牌在国内市场的大数据分析,评选出 30 家在开发者领域最具影响力的科技企业,权威发布& ...
- 极客广州——EOS Asia郭达峰担任SegmentFault思否黑客马拉松技术顾问
近日备受关注的 EOS 投票率超过 15%,主网激活,已正式上线.EOS Asia 联合创始人郭达峰将担任 SegmentFault 思否区块链黑客马拉松广州站技术顾问,为大赛项目提供技术咨询支持.届 ...
最新文章
- 纸上原型设计 VS 桌面原型工具设计,你更喜欢谁?
- PHPer常见的面试题总结
- 算法 有两个相同大小数组均已按升序排列好 编程计算这两个数组的中位数 C
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波15 - 锐化高通滤波器 -拉普拉斯核(二阶导数)
- Zookeeper集群为什么要是单数
- 选项类 oracle ebs,Oracle EBS 打3类补丁主要步骤
- (72)Verilog HDL系统函数和任务:$display
- zabbix 搭建 mysql 连接报错
- mysql打开慢查询_MySQL 开启慢查询日志的方法
- 防止被偷窥和修改 Office文档保护秘笈
- 让你无法拒绝的数学之美,美的完美无瑕
- 移动端border-radius绘制圆点不圆
- html+css学习第六天(背景图片、精灵图片、元素内容溢出、长度单位)
- 《左耳听风》-ARTS-打卡记录-第十四周
- 今天是值得纪念的一天!
- 专题·网络流【资源集合
- 安装VMware-tools出现initctl: Job failed to start
- 我的世界java边境之地_我的世界:前往边境之地的9个“诡异”现象!阳光也会被吞噬?...
- 全国产品经理认证NPDP哪里比较不错?
- 0035-量化第六天:QMT—板块收益排序后选取收益最高成分股
热门文章
- 42个激发灵感、漂亮的登陆页面设计
- 调试并修理垂起固定翼(VTOL)
- Python-Scapy使用介绍
- JAVA实习笔试面试(1)
- 交换机怎么用计算机配置,巧妙配置 用交换机控制网络(一) -电脑资料
- 测试用例管理工具(testlinkexcel)之二
- AUTOCAD——修剪命令、延伸命令
- python概率游戏_来自G胖的微笑:使用python监督学习预测Steam游戏打折的概率
- java 二元一次方程式_【java】用户输入二元一次方程的三个系数,计算机求解二元一次方程。...
- g楦和h楦的区别_赛事丨“双驰杯”福建鞋类设计师职业技能竞赛暨全国鞋类设计师技能竞赛 福建分赛区选拔赛理论题库(第二部分)...