目錄
- 問題描述
- 1.1、基本思路
- 1.2、代碼
- 2.1、正常思路
- 2.2、代碼
- 總結
編寫一個函數,其作用是将輸入的字元串反轉過來。輸入字元串以字元數組 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/problems/reverse-string
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
1.1、基本思路
# -*- coding: utf-8 -*-
'''
題目簡述:
給定一個以list形式儲存的字元串,将其反轉。
基本思路:
反轉清單的問題.
'''
class Solution():
def reverse_string(self,s):
s.reverse()
return s
if __name__ == '__main__':
s = ['h','e','l','l','o']
solu = Solution()
res = solu.reverse_string(s)
print('結果為\n',res)
2.1、正常思路
# -*- coding: utf-8 -*-
'''
題目簡述:
給定一個以list形式儲存的字元串,将其反轉。
基本思路:
觀察list前後,實質上就是交換以中軸兩邊元素,總共需要交換len(s)//2次
'''
class Solution():
def reverse_string(self,s):
if len(s) < 2: # 假設字元串長度<2,無需交換
return s
for i in range(len(s)//2):
s[i], s[len(s)-1-i] = s[len(s)-1-i],s[i]
return s
if __name__ == '__main__':
s = ['h','e','l','l','o']
solu = Solution()
res = solu.reverse_string(s)
print('結果為\n',res)