翻转单词题解
程序员文章站
2022-06-23 11:43:37
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“st...
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
解题思路:使用两部翻转法,可以轻松解决
java
public class Solution { public String ReverseSentence(String str) { if (str == null || str.length() == 0) { return ""; } char[] c = str.toCharArray(); reverse(c, 0, c.length - 1); int start = 0, end = 0; while (end < c.length && c[end] == ' ') { end++; } start = end; while (end < c.length) { if (c[end] != ' ') { end++; } else { reverse(c, start, end - 1); end++; start = end; } } reverse(c, start, end - 1); return new String(c); } private void reverse(char[] c, int start, int end) { char temp; while (start < end) { temp = c[start]; c[start] = c[end]; c[end] = temp; start++; end--; } } }
上一篇: Linux运维工程师必备监控工具详情
推荐阅读
-
CSS3的opacity属性带来的层叠顺序问题解决方法
-
详解mysql密码遗忘和登陆报错的问题解决
-
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例_html5教程技巧
-
python 写入csv乱码问题解决方法
-
利用iOS开发实现翻转扑克牌动画的方法
-
IOS10.11 无法访问http的问题解决办法
-
IOS json 解析遇到错误问题解决办法
-
在iOS10系统中微信后退无法发起ajax请求的问题解决办法
-
Android调试出现The selected device is incompatible问题解决
-
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)