字符串反转
来源:互联网 发布:初中生编程 编辑:程序博客网 时间:2024/06/08 02:42
将字符串反转
简单的将字符串反转一下,如有“hello”,将前面三个字符串移到后面,那么结果是”lohel”,用代码实现。
现在直接上代码了,两种实现方式。
#include <iostream>#include <cstdlib>#include <cstring>const int N = 1024;///////////////// 空间复杂度 O(k)int string_spin(char *line, int k){ if (line == NULL || k <= 0) return -1; int len = strlen(line); if (k >= len) return 0; char *p = new char[k+1]; int i = 0; for (i = 0; i < k; i++) p[i] = line[i]; p[i] = 0; //line[i] = 0; int j = 0; for (i = k; i < len; i++) { line[j++] = line[i]; } for (i = 0; i < k; i++) { line[j++] = p[i]; } line[j] = 0; std::cout << "j, len " << j << "," << len << std::endl; delete [] p; p = NULL; return 0;}///////////////////////////// 空间复杂度 O(1),比较有技巧性int reverse_string(char *line, int low, int high);int string_spin_1(char *line, int k){ if (line == NULL || k <= 0) return -1; int len = strlen(line); if (k >= len) return 0; reverse_string(line, 0, k-1); reverse_string(line, k, len-1); reverse_string(line, 0, len-1); return 0;}int reverse_string(char *line, int low, int high){ if (low >= high) return -1; int i = 0; int len = high - low + 1; int index = 0; /* if (len % 2 == 0) { index = len / 2; } else { index = len / 2; } */ index = len / 2; i = 0; char tmp; for (i = 0; i < index; i++) { tmp = line[low+i]; line[low+i] = line[high-i]; line[high-i] = tmp; } return 0;}////////////////////////////int main(int argc, char *argv[]){ char line[N] = "helloworld"; std::cout << "org string " << line << std::endl; int k = 3; //int ret = string_spin(line, k); int ret = string_spin_1(line, k); std::cout << "spin string " << line << std::endl; int i = 0; for (i = 0; i < 10; i++) std::cout << line[i]; std::cout << std::endl; return 0;}
比较有技巧性的解法。
阅读全文
0 0
- 字符串反转,单词反转
- 字符串反转
- 反转字符串
- 字符串反转
- 字符串反转
- 反转字符串
- 字符串反转
- 字符串反转
- 字符串反转
- 反转字符串
- 字符串反转
- 反转字符串
- 字符串反转
- 字符串反转
- 反转字符串
- 反转字符串
- 反转字符串
- 字符串反转
- pullToRefresh使用(实现listview上拉下拉)
- 记一次DG异常
- 项目开发的流程模块
- instanceof
- 打开r40平台tinav2.1下的AP6212A0版本的WIFI(分色排版)
- 字符串反转
- Linux系统下OpenCV2.x的安装与SIFT算法测试
- linux 用户限制
- Java 正则表达式
- python3 爬虫https的坑 -- 已解决
- node-web服务器简单搭建
- Oracle数据库使用pfile启动还是spfile启动---oracle
- git在push的时候出现insufficient permission for adding an object错误
- 配置snooping和ipsg遇到的特定IP的情况处理