【面试题】-反转句子

原创 2015年07月08日 17:21:03

题目描述

给定一个字符串句子,进行反转,不能申请额外的内存,比如“This is a sentence”,输出就是”sentence a is This”

解题思路

先对每个单词进行反转,结果为 “sihT si a ecnetnes” 然后再对整个句子反转,就是最终结果。
反转不能利用额外的空间,那就使用头尾指针,交换头尾指针的数据即可

代码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void Revert_words(char *p, char *q)
{

    while(p < q)
    {
        int tmp = *p;
        *p = *q;
        *q = tmp;
        p ++;
        q --;
    }
}




void Revert_string(char *str, int len)
{
    char *p = str;
    char *q = str;

    while(*p != '\0')
    {
        if(*p == ' ')
        {
            Revert_words(q,p - 1);
            p ++;
            q = p;
        }

        else
            p ++;
    }

    Revert_words(q,p - 1);

    Revert_words(str, p - 1);


}

int main(int argc, char const *argv[])
{
    char str[] = "This is a dog";


    printf("%s \n", str);

    Revert_string(str);

    printf("%s \n", str);

    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

将句子中的单词位置反转

给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao...
  • alisalearn
  • alisalearn
  • 2016年09月24日 19:09
  • 387

算法面试题之句子反转

小米2017年校园招聘题“句子反转”
  • yz930618
  • yz930618
  • 2017年07月29日 23:32
  • 441

剑指Offer面试题42(Java版):反转单词顺序VS左旋转字符串

题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串为“I am a Student.",则输出为”Student. a am...
  • jsqfengbao
  • jsqfengbao
  • 2015年08月10日 20:48
  • 2820

java字符串反转,逆序输出(句子反转,单词不反转)

如果输入:My name is Xiaogang 输出:Xiaogang is name My 代码具有去句子前后空格功能,并且有注释 class String2Test { public s...
  • jaycee110905
  • jaycee110905
  • 2013年05月03日 23:13
  • 4268

单词翻转(4种思路,C/C++代码)

单词翻转
  • duan19920101
  • duan19920101
  • 2016年05月19日 16:08
  • 2180

Java中反转字符串我所知的五种方法

五种方法已经封装到类中,话不多说,直接上代码。 package com.imooc.strreverse; import java.util.Stack; public class Reverse ...
  • zdqdj1
  • zdqdj1
  • 2016年06月28日 01:44
  • 3353

按照单词反转句子

题目描述 Description 给出一个英语句子,希望你把句子里的单词顺序都翻转过来 输入描述 Input Description 输入包括一个英语句子。 ...
  • yinzm520
  • yinzm520
  • 2013年10月28日 20:35
  • 624

反转二叉树,哈哈

这个问题因为前段时间一个大牛工程师Max Howell面试谷歌都火了,后来这家伙去了苹果。。我也不知道说什么了,谷姑娘把人家活生生的给拒了。 我今天也试着写了一下,递归版本的很easy的就写了出来。...
  • u013220338
  • u013220338
  • 2015年10月09日 14:25
  • 978

21 反转句子顺序

前言本博文部分图片, 思路来自于剑指offer 或者编程珠玑问题描述思路对于这个问题, 书中给出了一种思路, 我思考了一种思路思路一 : 首先将整个句子反转一下, 然后在将句子中的每个词翻转一下 比...
  • u011039332
  • u011039332
  • 2016年01月16日 20:32
  • 249

反转句子单词顺序

输入一句英文,单词用空格隔开,要求在主函数里调用函数reverse()将这句话的单词从后向前翻转过来。 要求:必须使用函数void reverse(char A[]) { }思路:可以先反转整个句子...
  • qq_23851075
  • qq_23851075
  • 2017年02月22日 21:18
  • 221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【面试题】-反转句子
举报原因:
原因补充:

(最多只允许输入30个字)