多种方法实现字符串的逆置
来源:互联网 发布:初始化编程单元时出错 编辑:程序博客网 时间:2024/06/05 03:20
实现思想:字符串逆置有很多种方法:
如下为后两种方法实现的代码:
- 逐个翻转;(先将第一个字符保存,将自第二个起到最后为止的字符依次前移一位,再将保留下来的第一个字符放置最后一位,这样实现了一次。循环多次实现整体逆置。缺点:代码的时间复杂度太高)
- 指针实现;(用两个指针,一个指向头部,一个指向尾部,进行交换只需交换至二者重合或交错即停下。其大大降低了代码的时间复杂度和空间复杂度)
- 递归实现。
#include<stdio.h>#include<stdlib.h>#include<assert.h>int my_strlen(char *string) //实现计算字符串长度{int len = 0;while (*string){string++;len++;}return len;}void reverse_string(char *string) //递归实现字符串逆置{ assert(string);int len = my_strlen(string);char* end = string + len - 1;char tmp = 0;if (len>=2){tmp = *string;*string = *end;*end = '\0';reverse_string(string + 1);*end = tmp;}return;}void reverse_string1(char *string) //指针实现字符串逆置{char *start = string;char *end = string + my_strlen(string) - 1;while (start <= end){*start ^= *end;*end ^= *start;*start ^= *end;start++;end--;}}int main(){char arr[] = "ABCDEF";reverse_string(arr);printf("%s", arr);system("pause");return 0;}
阅读全文
0 0
- 多种方法实现字符串的逆置
- 多种方法实现字符串逆序
- C/C++/VC 实现字符串逆转的多种方法
- Java实例说明 字符串的反转实现方法多种
- Sqrt的多种实现方法
- 多种获取字符串像素长度的方法
- OC语言字符串的多种方法
- 字符串的排序(多种方法)
- c++输入字符串的多种方法总结
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- (转)判断一个字符串是否全是数字的多种方法及其性能比较(C#实现
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- iOS 字符串类目,多种与字符串相关的方法。
- hibernate3 实现查询的多种方法
- hibernate3 实现查询的多种方法
- hdu 1272 小希的迷宫
- 【Angular2】试卷整体设计
- com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE
- DateBase-子查询
- 后台收到微信重复请求问题
- 多种方法实现字符串的逆置
- 私有云落地解决方案之网络篇-关键技术-vlan间通信
- opencv 图像对比度及亮度调整
- u盘安装centos7
- Java中==和equals的区别,equals和hashCode的区别
- Drop Pdb
- css盒模型
- 手机软件--测试用例设计实践
- Ubuntu 16.04下安装64位谷歌Chrome浏览器