LeetCode-字符串反转——D13【简单】

题目描述

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。

示例 1:

输入:[“h”,“e”,“l”,“l”,“o”]
输出:[“o”,“l”,“l”,“e”,“h”]
示例 2:

输入:[“H”,“a”,“n”,“n”,“a”,“h”]
输出:[“h”,“a”,“n”,“n”,“a”,“H”]

算法思想

先找到字符串的中间元素,将字符串中前一半元素和后一半元素对调

算法实现

class Solution():
    def reverseString(self,string):
        length=len(string)
        if length==0:
            return string
        for i in range(length//2):
            string[i],string[-1-i]=string[-1-i],string[i]
        
        return string
    
    def reverseString2(self,string):
        return string[::-1]#此操作具有反转遍历的效果,string[:]为正序遍历
        
    
test=Solution()
print(test.reverseString(["h","e","l","l","o"]))
print(test.reverseString(["H","a","n","n","a","h"]))

print(test.reverseString2(["h","e","l","l","o"]))
print(test.reverseString2(["H","a","n","n","a","h"]))

小结

在第一个方法中使用了python中的a,b=b,a的元素对换操作,此操作的基本原理在之前一篇博客中提过:
https://blog.csdn.net/qq_33414271/article/details/78522235

在第二个方法中用到了python中list类型的遍历:
正序遍历:s[:]
反转遍历:s[::-1]

发布了205 篇原创文章 · 获赞 655 · 访问量 53万+

猜你喜欢

转载自blog.csdn.net/qq_33414271/article/details/99353041
D13