思路:
对变量交换进行优化,不适用额外的中间变量。
解法一:使用异或操作
char* strrev1(const char* str) {
char* tmp = new char[strlen(str) + 1];
strcpy(tmp,str);
char* ret = tmp;
char* p = tmp + strlen(str) - 1;
while (p > tmp) {
*p ^= *tmp;
*tmp ^= *p;
*p ^= *tmp;
--p;
++tmp;
}
return ret;
}
解法二:使用加减法
char* strrev2(const char* str) {
char* tmp = new char[strlen(str) + 1];
strcpy(tmp,str);
char* ret = tmp;
char* p = tmp + strlen(str) - 1;
while (p > tmp) {
*p = *p + *tmp;
*tmp = *p - *tmp;
*p = *p - *tmp;
--p;
++tmp;
}
return ret;
}
方法二对于较大的整数相加可能会溢出
分享到:
相关推荐
例如,第1题要求实现一个字符串匹配算法,考察了字符串匹配的实现和优化方法。第4题则要求设计一个文本处理算法,考察了文本处理的实现和优化方法。 数据结构试卷(八) 本卷主要考察了数组和链表的数据结构。例如...
例如,我们可以使用 `substr` 方法来提取子串,使用 `size` 方法来获取字符串的长度。 6. DP 算法的时间和空间复杂度 DP 算法的时间复杂度通常是 O(n^2),其中 n 是输入字符串的长度。这是因为我们需要遍历输入...
2. 字符串操作:可以使用 Java 的 StringBuilder 或 StringBuffer 类来实现字符串的反转和替代操作。 3. 数据类型之间的转换:可以使用 Java 的 parseXX() 方法将字符串转换为数字,例如 parseInt()、parseDouble() ...
反转字符串中的单词 评估反向波兰表示法 线上的最大点数 排序列表 插入排序列表 LRU缓存 二叉树后序遍历 二叉树先序遍历 重新排序列表 链表周期 II 链表循环 断字二 断字 使用随机指针复制列表 单号二 单号 糖果 ...
实例049 用数组反转字符串 60 3.3 数组排序与查询 61 实例050 使用选择排序法 61 实例051 使用冒泡排序法 62 实例052 使用快速排序法 64 实例053 使用直接插入法 65 实例054 使用sort方法对数组进行排序 67 实例055 ...
0180 提取字符串中指定子字符串后的字符串 117 0181 替换指定的字符串 117 0182 在文本中删除指定的汉字或句子 118 0183 指定符号分割字符串 119 0184 如何使用随机密码和字符串 120 第6章 日期和时间 ...
0180 提取字符串中指定子字符串后的字符串 117 0181 替换指定的字符串 117 0182 在文本中删除指定的汉字或句子 118 0183 指定符号分割字符串 119 0184 如何使用随机密码和字符串 120 第6章 日期和时间 ...
215、写一个方法,实现字符串的反转,如:输入abc,输出cba 53 216、数据类型之间的转换 53 217、如何取得年月日,小时分秒 53 218、如何取得从1970年到现在的毫秒数 53 219、如何格式化日期 53 220、文件和目录(I/...
215、写一个方法,实现字符串的反转,如:输入abc,输出cba 53 216、数据类型之间的转换 53 217、如何取得年月日,小时分秒 53 218、如何取得从1970年到现在的毫秒数 53 219、如何格式化日期 53 220、文件和目录(I/...
它允许用户输入拉普拉斯空间函数 F(s) 以作为字符串和反演时间序列进行反演,以获得近似的 f(t) 值。 可选输入是每次的相对误差容限(5% 为 0.05)以及方法参数的搜索算法选择。 包装后的代码将优化 f(t) 近似值,...
76 <br>0111 计算字符串中子字符串出现的次数 76 <br>0112 获得字符串中大写字母的个数 77 <br>0113 获得某字符在字符串中最后出现的位置 78 <br>0114 如何找出字符串中某一字符的所有位置 78...
1,字符串反转的7种方法 2,new 和 _init_ 3,不使用中间变量交换两个变量的值 4,python四大内置高阶函数 5,python带颜色输出 6,python *args,**kargs用法 7,python常用模块 8,python多线程 9,python发送邮件 10,...
写一个方法,实现字符串的反转,如:输入abc,输出cba 119 84.11. 请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来. 119 84.12. 请写一个java程序实现线程连接池功能? 122 84.13. 编一...
11.19 如何构建最优化的字符串 11.20 使用jQuery产生GUID值 11.21 使用jQuery实现聚合函数 11.22 用jQuery打印网页的特定区域 11.23 禁止表单被提交 11.24 使用delay()延迟执行动画 11.25 在网页上运行本地程序的...
创建了几个字符串对象 30 【基础】接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class) 30 【基础】一个".java"源文件中是否可以包含多个类(不是内部类...