擅长:python、mysql、java
<p>您没有正确地获取第一个字符串的第一部分和第二个字符串的第二部分。请记住,当您剪切字符串时:</p>
<pre class="lang-py prettyprint-override"><code>>>> s = 'abcdefgh'
>>> s[:4] # this will take the first 4 elements of s
'abcd'
>>> s[4:] # this will take a sub-string from the 5th element at index 4 until the end of s
'efgh'
</code></pre>
<p>因此,您应该更改代码:</p>
<pre class="lang-py prettyprint-override"><code>def palindrome(str1, str2):
if len(str1) != len(str2):
raise ValueError('str1 and str2 should have the same length')
for i in range(len(str1)):
firstStr = str1[:i]
secondStr = str2[i:]
if isPalindrome(firstStr + secondStr):
return i
return -1
</code></pre>
<p>还要记住以下几点,如果两个字符串<code>str1</code>和<code>str2</code>的长度不相同,则返回<code>None</code>,因此可以直接写入<code>return</code>,因为它隐式返回<code>None</code>。但是,我认为最好引发一个异常,告诉用户<code>str1</code>和<code>str2</code>的长度不同。你知道吗</p>