Python小練習 判斷是否為「回聯文」

2021-08-03 05:21:49 字數 1855 閱讀 9546

首先,得知道什麼是回聯文?

回文聯,它是我國對聯中的一種。用回文形式寫成的對聯,既可順讀,也可倒讀。不僅它的意思不變,而且頗具趣味。是我國的重要文化之一。

方法一:此方法將前後的元素作對比,前後元素一致,則表示是回聯文

def huilian(setence):

length = len(setence)

count = 0

for i in range(length//2):

if setence[i] == setence[-(i+1)]: # 將前後的字元對比,若都相同,則count加1

count += 1

else:

print("不是回文聯")

break

if count == length // 2: # count數等於遍歷的長度,則表示是回聯文

print("是回文聯!!!")

sentence = input("請輸入一句話:")

huilian(sentence)

方法二:此方法和方法一類似,只是if-else的條件作了交換,只要前後的某一對元素不一致,則表示不是回聯文

def huilianwen(setence):

length = len(setence)

last = length - 1

flag = 1

for i in range(length // 2):

if setence[i] != setence[last]:

# 如果出現前後不等的情況,flag的值記為0;當flag為0時,表示不是回聯文

flag = 0

last -= 1

if flag == 1:

return "是回聯文!"

else:

return "不是回聯文!"

sentence = input("請輸入一句話:")

print(huilianwen(sentence))

方法三:將輸入的字串轉化為列表,將列表翻轉,比較翻轉前後的列表是否相同,相同則表示是回聯文

def huilianwen(string):

list1 = list(string)

list2 = list(reversed(list1)) # 這裡用到了reversed()函式,ta返回的是乙個迭代器物件,需要將其轉化為列表的形式

if list1 == list2:

print('是回聯文')

else:

print("不是回聯文")

strings = input("輸入一段話:")

huilianwen(strings)

方法四:使用遞迴

def huilian(str, start, end):

if start > end: # 結束條件,當start > end時,就是首尾交叉的時候

return 1

else:

return huilian(str, start + 1, end - 1) if str[start] == str[end] else 0

string = input('請輸入一串字串:')

length = len(string) - 1

if huilian(string, 0, length):

print("大兄弟,是回聯文了啦!!!")

else:

print("大妹砸,不是回聯文,o(∩_∩)o哈哈哈~")

Leetcode練習《十二》 判斷整數是否為回文

determine whether an integer is a palindrome.do this without extra space.判斷乙個整數是否是回文 不能使用新的空間 我的理解就是不能使用新的變數來儲存資料 思路很簡單 就是先取最高位 再取最低位 兩個比較是否相等 相等的話就接著...

C 小練習(判斷某年是否為閏年)

程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 作 者 臧鵬 完成日期 2012 年 9月 16日 版 本 號 001 對任務及求解方法的描述部分 輸入描述 問題描述 輸入乙個年份,判斷是否潤年 被4整除,且不被100整除,或者被400整除 程式輸出 程式頭部的注釋結束 using system...

python 判斷是否為中文

python在執行 過程是不知道這個字元是什麼意思的 是否是中文,而是把所有 翻譯成二進位制也就是000111這種形式,機器可以看懂的語言。也就是在計算機中所有的字元都是有數字來表示的。漢字也是有數字表示的,unicdoe4e00 9fff表示中文,所以如果乙個字元的utf 8編碼在這個區間內,就說...