# -*- coding: utf-8 -*-
'''
Python程序员面试算法宝典---解题总结: 第5章 字符串 5.3 如何对字符串进行反转
题目:
实现字符串的反转,要求不使用任何系统方法,且时间复杂度最小
分析:
关键:
1 ord(char)是获取字符的ascii码
chr(num)可以将数字转换为字符
实现两个数字交换且不使用临时变量的方法为:
a=a^b
b=a^b
a=a^b
参考:
Python程序员面试算法宝典
'''
def reverString(string):
if not string:
return
charList = list(string)
i = 0
size = len(charList)
j = size - 1
while i < j:
charList[i] = chr(ord(charList[i]) ^ ord(charList[j]))
charList[j] = chr(ord(charList[i]) ^ ord(charList[j]))
charList[i] = chr(ord(charList[i]) ^ ord(charList[j]))
i += 1
j -= 1
return "".join(charList)
def process():
string = 'a'
result = reverString(string)
print result
string = 'aa'
result = reverString(string)
print result
string = 'ab'
result = reverString(string)
print result
string = 'abc'
result = reverString(string)
print result
string = 'abcd'
result = reverString(string)
print result
if __name__ == "__main__":
process()
Python程序员面试算法宝典---解题总结: 第5章 字符串 5.3 如何对字符串进行反转
猜你喜欢
转载自blog.csdn.net/qingyuanluofeng/article/details/94301139
今日推荐
周排行