小练习- 1
2013-09-26 22:03
232 查看
题目:将字符数组a转换成apple an is this,可以把它叫做字符数组单词逆序
要求:1、不能开辟新的数组或者其他内存单元,使其空间复杂度为O(1)
{空间复杂度:空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度
如当一个算法的空间复杂度为一个常量,即不随被处理数据量n的大小而改变时,可表示为O(1)
表示该程序所占用的空间和所用数据量无关}
2、不能使用C++特性
要求:1、不能开辟新的数组或者其他内存单元,使其空间复杂度为O(1)
{空间复杂度:空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度
如当一个算法的空间复杂度为一个常量,即不随被处理数据量n的大小而改变时,可表示为O(1)
表示该程序所占用的空间和所用数据量无关}
2、不能使用C++特性
#include <iostream> #include <cstring> using namespace std; int main() { char str[] = "this is an apple"; int str_len = sizeof(str); cout << "Length of string is " << str_len << endl; // 翻转字符串 for (int i = 0; i < str_len/2 ; i++) { str[str_len - 1] = str[i]; str[i] = str[str_len -2 -i]; str[str_len - 2 - i] = str[str_len - 1]; } str[str_len - 1] = '\0'; cout << str << endl; //纠正字母 int word_len = 0; for (int i = 0; i < str_len; i++) { word_len++; if (str[i] == '\0' || str[i] == ' ') { for (int j = 0; j < word_len / 2; j++) { str[i] = str[i - word_len + 1 + j]; str[i - word_len + 1 + j] = str[i - 1 - j]; str[i - 1 - j] = str[i]; } str[i] = ' '; word_len = 0; } } str[str_len - 1] = '\0'; cout << str << endl; return 0; }
相关文章推荐
- Java程序练习-删除所有大于mink且小于maxk的元素
- 【练习03】 KMP 1003 Cyclic Nacklace
- matlab练习程序(三角形外接圆)
- 分支结构练习-4.登录系统
- iOS边练边学--父子控件之作为导航控制器的子类产生的问题以及网易新闻练习
- Php的小练习
- 基础练习 时间转换
- 面向对象程序设计上机练习一(函数重载)
- 基础练习 特殊回文数
- Dave Python 练习十五 -- 面向对象编程
- 最短路入门练习 解题报告
- sdut 面向对象程序设计上机练习八(对象数组)
- 数据结构与算法分析Java版练习1.11和1.12
- CCNA实验练习
- CODEVS 3116高精度练习之加法
- ACM递推递归练习B王小二切饼
- LeetCode编程练习 - Intersection of Two Arrays学习心得
- 矩形面积交_基础练习_蓝桥杯
- Dave Python 练习十七 -- 正则表达式
- shell脚本练习 :备份文件(2)修订