For example,
Given s = "
the sky is blue
",return "
blue is sky the
".
Clarification:
- What constitutes a word?
A sequence of non-space characters constitutes a word. - Could the input string contain leading or trailing spaces?
Yes. However, your reversed string should not contain leading or trailing spaces. - How about multiple spaces between two words?
Reduce them to a single space in the reversed string.
public class Solution { public String reverseWords(String s) { int n = s.length(); if (n == 0) return ""; // Split words by space String[] words = s.split(" "); // Use append function // Note: If we use 'String' type rather than 'StringBuilder', memory limit will exceed. StringBuilder sb = new StringBuilder(); for (int i = words.length-1; i >= 0; i--) { if (!words[i].equals("")) { sb.append(words[i]); sb.append(" "); } } if (sb.length() == 0) return ""; else return sb.substring(0, sb.length()-1); } }
No comments:
Post a Comment