python練習 回文索引數

2021-10-07 09:00:30 字數 1001 閱讀 4807

輸入n+1行,第一行為整數n(大於等於1),表示測試資料的組數,後面n行僅由小寫字母組成的字串。現在請找出乙個位置,刪掉那個字母之後,字串變成回文。請放心總會有乙個合法的解。如果給定的字串已經是乙個回文串,那麼輸出-1。

根據題目不考慮刪除元素後不是回文串的情況。

1.判斷字串是否是回文,是列印-1,不是就繼續

2.迴圈刪除字串的乙個元素,刪除後的新字串如果是回文就列印刪除的索引值,並跳出迴圈;如果不是回文就繼續

# -*- coding:utf-8 -*-

defispalindrome

(str):

str1 =

str[::

-1]if

str== str1:

return

true

else

:return

false

defstr_remove

(str

, idx)

: tmplist =

list

(str

) tmplist.pop(idx)

return

"".join(tmplist)

num =

int(

input()

)a =

for i in

range

(num)

:input()

)for x in a:

if ispalindrome(x)

:print

("-1"

)else

:for i in

range

(len

(x))

: xnew = str_remove(x, i)

if ispalindrome(xnew)

:print

(i)break

else

:continue

python可變引數練習

下面的練習參考了 coding utf8 可變引數練習 args是表示乙個不定長的序列 kwargs表示一組不定長度k v的pair def test1 first,args,kwargs print required argument first for v in args print optio...

練習三十 Python回文數判斷程式設計練習。

方法一 1 num input 輸入乙個數 2 results 是回文數 不是回文數 輸入的不是數字 3 result 4if num.isdigit 5 num str num 6for i in range len num 2 7if num i num len num i 1 8continu...

基礎練習 特殊回文數 python

在做這道題時,我的 注釋部分 一直超時。後來我算了一下我的時間複雜度,雖然我只用了一層迴圈,也就是o n 但是它迴圈了1000000 10001 989999次。後來我突然想到它是回文數,最大也就六位還是兩邊對稱的情況,我可以把每一位拆開看每一位可能的數字只有10個,排列前半部分即使有三層迴圈,但也...