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

Reverse Words in a String III

时间:2017-10-29 18:49:04      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:blog   extra   and   script   fun   not   tco   log   white   

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"

 

Note: In the string, each word is separated by single space and there will not be any extra space in the string.

思考:

  1.如何找到空格位置?

  2.如何截断字符串并把它旋转?

思路:可以用start和end变量找到并控制空格位置,然后再用循环把字符串逆序。

解法一: 用JavaScript内置方法

/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
    var str = s.split(" ");  //截断成数组
    for(let i=0;i<str.length;i++){
        str[i] = str[i].split("").reverse().join(""); //把各子字符串截断为数组,再逆转,再拼成字符串
    }
    return str.join(" ");  //再用空格分开字符串
};

解法二:C语言

char* reverseWords(char* s) {
    int i=0,j=0;
    int start=0,end=0;
    int len=strlen(s);
    char temp;
    for(i=0;i<=len;i++){
        if(s[i]== ||s[i]==\0){  //找到空格位置
             end=i-1;
            int result = end+start;
             for(j=start;j<=result/2;j++){   //旋转字符串
                 temp=s[j];
                 s[j]=s[result-j];
                 s[result-j]=temp;
             }  
             start=i+1;
        }
    }
    return s;
}

 

Reverse Words in a String III

标签:blog   extra   and   script   fun   not   tco   log   white   

原文地址:http://www.cnblogs.com/linwx/p/7750463.html

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