码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode_557 Reverse Words in a String III(String)

时间:2017-04-25 22:27:46      阅读:134      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!