标签:solution end har str class pre 分割 order code
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
Example 1:
Input: "Let‘s take LeetCode contest" Output: "s‘teL ekat edoCteeL tsetnoc"
public class Solution { public String reverseWords(String s) { String[] ans=s.split(" "); StringBuilder sb=new StringBuilder(); for(int i=0;i<ans.length;i++){ for(int j=ans[i].length()-1;j>=0;j--){ sb.append(ans[i].charAt(j)); } sb.append(" "); } return sb.toString().trim(); } }
my solution:把每个单词分割出来,改变顺序,再存入StringBuilder中(占用了多余的空间)
leetcode solution:
public String reverseWords(String s) { char[] s1 = s.toCharArray(); int i = 0; for(int j = 0; j < s1.length; j++) { if(s1[j] == ‘ ‘) { reverse(s1, i, j - 1); i = j + 1; } } reverse(s1, i, s1.length - 1); return new String(s1); } public void reverse(char[] s, int l, int r) { while(l < r) { char temp = s[l]; s[l] = s[r]; s[r] = temp; l++; r--; } }
leetcode_557 Reverse Words in a String III(String)
标签:solution end har str class pre 分割 order code
原文地址:http://www.cnblogs.com/ytq1016/p/6764367.html