我在下面發布了兩個解決方案,我在 leetcode 中嘗試解決問題:344
https://leetcode.com/problems/reverse-string/
解決方案 1
class Solution:
def reverseString(self, s: List[str]) -> None:
return s[::-1]
解決方案 2
class Solution:
def reverseString(self, s: List[str]) -> None:
first = 0
last = len(s) - 1
while first <= last:
s[first], s[last] = s[last], s[first]
first = 1
last -= 1
return s
據我了解,這兩種解決方案都是就地的。但是,解決方案 1 不被接受并提示為錯誤答案。解決方案 2 被接受。有人可以幫我嗎?
uj5u.com熱心網友回復:
問題是不要回傳任何東西,這意味著您需要進行就地反轉。這也是字串串列而不是字串,因此無論您在函式內部進行什么更改,它都會反映在串列中,因為串列是可變的。
正確的解決方案將是
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
s.reverse()
另外,如果您想按照自己的風格做,那么正確的行將是
s[:] = s[::-1]
uj5u.com熱心網友回復:
第一個解決方案創建一個新串列并且不更改引數(這也感覺更干凈)。
編輯:不要介意以下部分。它不會做任何事情。謝謝。
但是你可以做類似的事情
s = s[::-1]
而不是 return 陳述句。
uj5u.com熱心網友回復:
第一個沒有到位。您的函式簽名表明您沒有回傳任何內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470726.html
標籤:Python 数组 python-3.x 细绳 到位
上一篇:查找連續第n次出現的字符并在Python中替換它,以修復/替換錯誤/剩余的“;”文本檔案中的分隔符
下一篇:洗掉出現在單詞之外的模式
