昨天睡觉之前,同学提醒说leetcode出了道新题,早上爬起来做了一下,本来用了string的split,写完发现二了,没有办法切割多个空格的情况,如果想切割多个空格,那就一定要带上正则表达式了。于是老老实实的从尾遍历到头。
好吧,上代码:
Reverse Words in a String
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
public class Solution { public String reverseWords(String s) { if(s==null) return ""; s = s.trim(); if(s=="") return ""; StringBuffer sb = new StringBuffer(); int i = s.length()-1; int last = i; while(i>=0){ while(i>=0&&s.charAt(i)!=‘ ‘){ i--; } String temp = s.substring(i+1,last+1); sb.append(temp); sb.append(" "); while(i>=0&&s.charAt(i)==‘ ‘){ i--; } last = i; } while(sb.length()>1&&sb.charAt(sb.length()-1)==‘ ‘) sb.deleteCharAt(sb.length()-1); return sb.toString(); } }
leetcode JAVA Reverse Words in a String 难度系数2-3?最新题151,布布扣,bubuko.com
leetcode JAVA Reverse Words in a String 难度系数2-3?最新题151
原文:http://blog.csdn.net/yiding_he/article/details/20741155