天天看點

python實作反轉字元串

目錄

  • 問題描述
  • 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)