*LeetCode-Reverse Words in a String II
2015-10-22 09:08
381 查看
首先把整个string reverse 然后每个词再reverse
或者先每个词reverse 再整个reverse 注意最后一个词要记得reverse 这也是只有一个词的coner case的情况
public class Solution {
public void reverseWords(char[] s) {
reverse( s, 0, s.length - 1);
int start = 0;
int end = 0;
for ( int i = 0; i < s.length; i ++ ){
if ( s[ i ] == ' '){
reverse ( s, start, end );
start = i + 1;
}
else
end = i;
}
reverse ( s, start, end );
}
public void reverse ( char[] s, int start, int end ){
while ( start < end ){
char c = s[ start ];
s[ start ] = s [ end ];
s[ end ] = c;
start ++;
end --;
}
}
}
或者先每个词reverse 再整个reverse 注意最后一个词要记得reverse 这也是只有一个词的coner case的情况
public class Solution {
public void reverseWords(char[] s) {
reverse( s, 0, s.length - 1);
int start = 0;
int end = 0;
for ( int i = 0; i < s.length; i ++ ){
if ( s[ i ] == ' '){
reverse ( s, start, end );
start = i + 1;
}
else
end = i;
}
reverse ( s, start, end );
}
public void reverse ( char[] s, int start, int end ){
while ( start < end ){
char c = s[ start ];
s[ start ] = s [ end ];
s[ end ] = c;
start ++;
end --;
}
}
}
相关文章推荐
- Apache Rewrite如何传递GET参数的问题
- 将list集合进行切割 转换为队列进行处理
- LeetCode Populating Next Right Pointers in Each Node & Populating Next Right Pointers in Each Node I
- Android开发四大组件之实现电话拦截和电话录音
- Win10 Mobile 10572快速配置更新推送 Win10 Mobile 10572升级体验
- Spring异步执行(@Async)2点注意事项
- 3D数学基础至四元数
- Spring异步执行(@Async)2点注意事项
- Spring异步执行(@Async)2点注意事项
- listview重写onMesure方法,高度不准确的问题
- 考试倒计时jquery+cookie(防止刷新)
- 产生一个Java的内存泄露
- SQL Server 性能调优(cpu)
- *Palindrome Linked List
- JSP/Servlet-----web.xml加载顺序
- 源码推荐(10.22):一行代码搞定自动布局,无限循环自动轮播器
- 译文《What everybody ought to know about a Data Scientist 》
- Sort
- Thread-Specific Data(线程私有数据)
- 使用WakeLock使Android应用程序保持后台唤醒