【面试题】-反转句子
2015-07-08 17:21
393 查看
题目描述
给定一个字符串句子,进行反转,不能申请额外的内存,比如“This is a sentence”,输出就是”sentence a is This”解题思路
先对每个单词进行反转,结果为 “sihT si a ecnetnes” 然后再对整个句子反转,就是最终结果。反转不能利用额外的空间,那就使用头尾指针,交换头尾指针的数据即可
代码实现
[code]#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; }
相关文章推荐
- (剑指Offer)面试题11:数值的整数次方
- 黑马程序员——JAVA String类
- 黑马程序员——JAVA异常
- 黑马程序员——JAVA类和对象
- 黑马程序员—Java反射
- Java7K面试题—银行业务调度系统
- 黑马程序员—交通灯管理系统
- (剑指Offer)面试题10:二进制中1的个数
- 记一次糟糕的面试
- 黑马程序员---正则表达式
- 程序猿职业规划,未来该何去何从
- 阿里巴巴常考面试题及汇总答案
- (剑指Offer)面试题9:斐波那契数列
- 当程序员老去
- 黑马程序员——OC—OC中面向的对象特征之继承和派生
- 面试题 :实现两个整数变量的交换
- 黑马程序员——Java基础---集合总结
- 黑马程序员——OC—OC中面向对象的特性之封装
- 程序员职业素养
- 黑马程序员—Java中的IO流