面试经典题目:字符串的反转算法
2013-08-05 11:01
281 查看
#include <iostream> using namespace std; char *strrev1(const char *str) { int len = strlen(str); char *temp = new char[len + 1]; strcpy(temp, str); for (int i = 0; i < len / 2; i++) { char iTemp = temp[i]; temp[i] = temp[len - i - 1]; temp[len - i - 1] = iTemp; } return temp; } char *strrev2(const char *str) { int len = strlen(str); char *temp = new char[len + 1]; strcpy(temp, str); char *ret = temp; char *p = temp + len - 1; while (p > temp) { //char iTemp = *p; //方法一 //*p = *temp; //*temp = iTemp; //*p ^= *temp; //方法二 //*temp ^= *p; //*p ^= *temp; *p = *p + *temp; *temp = *p - *temp;//方法三 *p = *p - *temp; p--; temp++; } return ret; } int main(int argc, char *argv[]) { char *str = "Hello, I'm a student!"; char *temp; //temp = strrev1(str); temp = strrev2(str); cout << temp << endl; system("pause"); return 0; }
相关文章推荐
- 经典算法面试题目-翻转一个C风格的字符串(1.2)
- 经典算法面试题目-翻转一个C风格的字符串(1.2)
- 经典算法面试题目-判断一个字符串中的字符是否唯一(1.1)
- 经典算法面试题目-设计算法移除字符串中重复的字符(1.3)
- 经典算法面试题目-判断一个字符串中的字符是否唯一(1.1)
- 经典算法面试题目-设计算法移除字符串中重复的字符(1.3)
- 经典算法面试题目-判断两个字符串是否是变位词(1.4)
- 经典算法面试题目-判断两个字符串是否是变位词(1.4)
- 【LeetCode-面试算法经典-Java实现】【151-Reverse Words in a String(反转字符串中的单词)】
- 经典算法面试题目-替换字符串的内容(1.5)
- 经典算法面试题目-替换字符串的内容(1.5)
- 经典算法面试题目-判断s2是否是s1的旋转字符串(1.8)
- 【LeetCode-面试算法经典-Java实现】【008-String to Integer (atoi) (字符串转成整数)】
- 分享Java面试中遇到的一些经典算法题目 (转)
- 经典算法面试题目-矩阵旋转90度(1.6)
- 算法面试字符串-题目3-交换*号
- 【LeetCode-面试算法经典-Java实现】【05-Longest Palindromic Substring(最大回文字符串)】
- 分享Java面试中遇到的一些经典算法题目
- 经典算法面试题目-矩阵旋转90度(1.6)
- 【LeetCode-面试算法经典-Java实现】【205-Isomorphic Strings(同构字符串)】