【初级算法】反转字符串 2021.8.13

【题目】反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 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"]

作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnhbqj/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

1.0 自己尝试写

1.1 reverse方法

1 class Solution:
2     def reverseString(self, s: List[str]) -> None:
3         """
4         Do not return anything, modify s in-place instead.
5         """
6         s = s.reverse()

直接用reverse就能得到结果

 

 特别快,但内存消耗很高

 

1.2 切片

 

 

 很奇怪,在命令行中试验的时候我用切片输出结果转换了,为什么在这里还是原顺序?不是很懂

 

 

2.0 常规算法

 1 class Solution:
 2     def reverseString(self, s: List[str]) -> None:
 3         """
 4         Do not return anything, modify s in-place instead.
 5         """
 6         length = len(s)
 7         if length < 2:
 8             return
 9         for i in range(length//2):
10             s[i], s[length-i-1] = s[length-i-1], s[i]

 

posted @ 2021-08-13 11:52  阿吽  阅读(40)  评论(0)    收藏  举报