数组和字符串//反转字符串中的单词 III

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 1:

输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc" 

注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

class Solution {
    public String reverseWords(String s) {
        char[] buffer = s.toCharArray();
        int length = buffer.length;
        int left = 0, right = 0;
        boolean last;
        for(int i = 0; i < length; i++){
            last = i == length-1;
            if(buffer[i] == ' '||last){
                left = right;
                right = i-(last?0:1);
                for(;left<right;left++,right--){
                    char temp = buffer[left];
                    buffer[left] = buffer[right];
                    buffer[right] = temp;
                }
                right = i+1;
            }
        }
        return new String(buffer);
    }
}
class Solution {
public:
    string reverseWords(string s) {
        int i = 0, j = 0;
        string res;
        while(j < s.length()){
            if(j != s.length()-1){
                if(s[j] != ' ') j++;
                else{
                    for(int k = j-1; k >= i; k--) res += s[k];
                    res += ' ';
                    j++;
                    i = j;
                }
            }else{
                for(int k = j; k >= i; k--) res += s[k];
                break;
            }
        }
        return res;
    }
};
原文地址:https://www.cnblogs.com/strawqqhat/p/10602325.html