WooKinson

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 1:

输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc" 
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
题目描述

 

 1 char * reverseWords(char * s){
 2     int i,j,index;
 3     char ch;
 4     
 5     i = index = 0;
 6     do
 7     {
 8         if (s[i]==' ' || s[i]=='\0')
 9         {
10             for (j=0 ; j<(i-index)/2 ; ++j)
11             {
12                 ch = s[i-1-j];
13                 s[i-1-j] = s[index+j];
14                 s[index+j] = ch;
15             }            
16             index = i+1;
17         }
18     }while (s[i++]!='\0');
19     
20     return s;
21 }
C解法

 

解题思路:

在原字符串上进行操作,

通过使用两个下标(双指针),确定每个单词的左右边界,并对单词进行反转。

posted on 2019-06-04 09:10  WooKinson  阅读(122)  评论(0编辑  收藏  举报