[問題] 如何去除回文中的標點符號(')?

看板Python作者 (Lexie)時間15年前 (2010/01/01 16:33), 編輯推噓0(0011)
留言11則, 3人參與, 最新討論串1/3 (看更多)
我是初學者^^ 最近功課有一題 我們發現 “GO HANG A SALAMI I'M A LASAGNA HOG.” 是迴文,但我們的演算法無法處理,這是因為 “I’M” 的單引號造成的結果 想請問要如何把 ’去掉。 我的做法如下: 可是出來之後的word4完全沒有被join在一起 為什麼呢? 謝謝大家:) # -*- coding: cp950 -*- def is_palindrome(word): i = 0 j = len(word5) - 1 while i < j: if word[i] != word[j]: return False i = i + 1 j = j - 1 return True fin = open('Palindrome_testdata.txt') for line in fin: word1 = line.strip() print '原文word1:', word1 word2 = word1.split(' ') print '串列word2:', word2 word4 = [] for word in word2: word3 = word.rstrip('.,!?') word4.append(word3) delmiter = '' word5 = delmiter.join(word4) print '連接後:', word5 if is_palindrome(word5): print 'true' else: print 'false' -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.217.78

01/01 19:01, , 1F
import re
01/01 19:01, 1F

01/01 19:01, , 2F
foo = "GO HANG A SALAMI I'M A LASAGNA HOG."
01/01 19:01, 2F

01/01 19:02, , 3F
foo = re.sub("[^a-zA-Z]", "", foo)
01/01 19:02, 3F

01/01 19:03, , 4F
if foo == foo[::-1]:
01/01 19:03, 4F

01/01 19:03, , 5F
print 'true'
01/01 19:03, 5F

01/01 19:03, , 6F
else:
01/01 19:03, 6F

01/01 19:03, , 7F
print 'false'
01/01 19:03, 7F

01/01 19:04, , 8F
這樣子 跟你要的有一樣嗎 ?
01/01 19:04, 8F

01/02 11:16, , 9F
word4=''.join([i for i in word if i!="'"]) 這樣ok嗎?
01/02 11:16, 9F

01/02 16:23, , 10F
wxyy~您的做法我還沒學過耶> <"真是抱歉
01/02 16:23, 10F

01/02 18:06, , 11F
不過跑出來結果是對的^^
01/02 18:06, 11F
※ 編輯: Lexie 來自: 140.112.217.78 (01/02 18:12)
文章代碼(AID): #1BFRDGuG (Python)
文章代碼(AID): #1BFRDGuG (Python)