不开辟用于交换数据的临时空间,如何完成字符串的逆序(在技术一轮面试中,有些面试官会这样问)
#include “stdafx.h”
void change(char *str) {
for(int i=0,j=strlen(str)-1; i<j; i++, j-){
str[i] ^= str[j] ^= str[i] ^= str[j];
/* s[i] = s[i]^s[j];
s[j] = s[i]^s[j];
s[i] = s[i]^s[j];*/
}
}
int main(int argc, char* argv[]) {
char str[] = “abcdefg”;
printf(”strSource=%s\n”, str);
change(str);
printf(”strResult=%s\n”, str);
return getchar();
}
本文介绍了一种在不开辟额外空间的情况下,利用C++实现字符串逆序的方法,通过位运算技巧优化内存使用。
674

被折叠的 条评论
为什么被折叠?



