0
我正在解決LeetCode上的算法問題(第5個問題,如果您想先讀取問題 https://leetcode.com/problems/longest-palindromic-substring/)。 我寫python程序:這兩個python程序有什麼區別?
class Solution(object):
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
l = 1
if len(s) < 2:
return s
result = s[0]
for end in range(1, len(s)):
if end - (l + 1) >= 0 and s[end - (l + 1):end + 1] == s[end - (l + 1):end + 1][::-1]:
l += 2
result = s[end - (l + 1):end + 1]
continue
elif end - l >= 0 and s[end - l:end + 1] == s[end - l:end + 1][::-1]:
l += 1
result = s[end-l:end+1]
return result
當我測試使用它 'ABBA' 作爲輸入:它輸出 'BA'。 然後,我發現在討論一個python溶液,該程序是這樣的:
class Solution:
# @return a string
def longestPalindrome(self, s):
if len(s) == 0: return 0
maxLen = 1
start = 0
for i in xrange(len(s)):
if i - maxLen >= 1 and s[i - maxLen - 1:i + 1] == s[i - maxLen - 1:i + 1][::-1]:
start = i - maxLen - 1
maxLen += 2
continue
if i - maxLen >= 0 and s[i - maxLen:i + 1] == s[i - maxLen:i + 1][::-1]:
start = i - maxLen
maxLen += 1
return s[start:start + maxLen]
當我它使用「ABBA」作爲輸入測試時,其輸出「ABBA」正確。 我是一個非常新的python初學者,所以我總是被Python中傳遞參數的困惑所困擾。那麼,有誰能告訴我爲什麼這兩個python程序會得到兩個不同的結果? 在此先感謝。
添加一些打印和步驟代碼,你將能夠弄清楚它 –