算法系列:字符串反转算法实现

目录

方法1 使用异或运算

方法2 遍历数组

扩展


方法1 使用异或运算

异或操作能实现交换两个变量的值而不引入第三个变量。

两个数异或的结果再与其中一个数异或的结果是另外一个数。

这涉及到了离散数学中的异或的性质:

1.交换律:A^B=B^A

2.结合律: A^(B^C)=(A^B)^C

3.恒等律:X^0=0

4.归零律:X^X=0

5.自反:A^B^B = A^0=A

 

根据以上性质:

 

A=A^B

B=A^B

A=A^B

 

通过以上三步,能实现在程序中交换两个变量的数值的目标。

算法系列:字符串反转算法实现

算法系列:字符串反转算法实现

 

方法2 遍历数组

每次循环的时候,我们应该直接给前、后位置(第一个和最后一个,第二个和倒数第二个)交换

算法系列:字符串反转算法实现

 

扩展

一个字符串反转,单词不翻转