#題目是說「經過重新排序後,是否可以變迴文」,所以不能直接從翻轉字串去看相不相等QQ
#題目是說「經過重新排序後,是否可以變迴文」,所以不能直接從翻轉字串去看相不相等QQ
- 建立一個長度26的列表1去紀錄英文字母出現的次數
- 將輸入進來的字串作切割成列表2
- 遍尋列表2,一一用ASCII的方式,將字元轉成數字去做範圍的判斷,進而篩出大寫字母和小寫字母 (這樣就可以把其他符號篩掉了)
- 然後同樣用ASCII的方式去轉換成列表的索引後,將相對應的次數+1 (count[ord(char)-65] += 1 ) # 因為我們希望可以直接讓A對應到陣列第0項,B對應到陣列第1項
- 尋找列表1的奇數是否小於等於1,如果是的話就是迴文
try :
while True:
string = input()
count = [0]*26
result = 0
for char in string:
if (ord(char)>=65) and (ord(char)<=90): #A-Z
count[ord(char)-65] += 1
elif (ord(char)>=97) and (ord(char)<=122): #a-z
count[ord(char)-97] += 1
for i in range(26):
if count[i]%2 == 1:
result+=1
if result <= 1:
print('yes !')
else :
print('no...')
except EOFError:
pass