【LeetCode】Reverse Words in a String

来源:互联网 发布:js鼠标经过提示信息 编辑:程序博客网 时间:2024/05/17 20:30

题目:

Given an input string, reverse the string word by word.

For example,

Given s = "the sky is blue",

return "blue is sky the".

解答:

首先理解题意很重要,不然会浪费很多时间在细节上,先理清题目隐藏的一些细节:1,字符串的两端的空格要去掉;2,单词间只保留一个空格,如以下测试用例:

     "            "        "a        "        "             a        "        "             a"        "             a                     b        "        "             a b       "        "             a  b"        "a  b      "        "             a  b                c d e f                          g      "
代码如下:

class Q151_ReverseWords{//acpublic static String reverseWords(String s){if(s=="") return "";String str="";int start=0,end;for(int i=s.length()-1;i>=0;){while(i>=0&&s.charAt(i)==' ') i--;if(i!=start) str+=" ";end=i;while(i>=0&&s.charAt(i)!=' ') i--;start=i;str+=s.substring(start+1,end+1);}//去除两端空格start=0;end=str.length()-1;while(start<=end&&str.charAt(start)==' ')start++;while(start<=end&&str.charAt(end)==' ')end--;return str.substring(start,end+1);}public static void main(String[] args){String str="   a   b    ";System.out.print(str);System.out.println("--");System.out.print(reverseWords(str));System.out.println("--");}}

---EOF---




0 0