首页 > 代码库 > Reverse Words in a String
Reverse Words in a String
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
".
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 void reverseWords(char[] array, int startIndex, int endIndex) { while (startIndex < endIndex) { char p = array[startIndex]; array[startIndex] = array[endIndex]; array[endIndex] = p; startIndex++; endIndex--; } } public String reverseWords(String s) { if(s==null) return null; s=s.trim(); if(s.length()==0) return s; StringBuilder pString=new StringBuilder(s.length()); pString.append(s.charAt(0)); for(int i=1;i<s.length();i++){ pString.append(s.charAt(i)); if(s.charAt(i)==' '){ while(s.charAt(i)==' ') i++; i--; } } char[] array = pString.toString().toCharArray(); reverseWords(array, 0, array.length - 1); int startIndex = 0; int endIndex; while (startIndex<array.length) { for (endIndex = startIndex + 1; endIndex < array.length; endIndex++) { if (array[endIndex] == ' ') break; } reverseWords(array,startIndex,endIndex-1); startIndex=endIndex+1; } return new String(array); } }
Reverse Words in a String
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。