2014-07-07 76 views
-5

下面的字符串被視爲有效: 字符串不包含任何下列字符:['/', '<', '>'] 如果s是有效的,那麼'<t>' + s + '</t>',其中t爲下面的 字符串之一:'B', 'I', 'U', 'BIG', 'SMALL'。這些「標籤」指定任何特殊的格式 它們之間的文本(粗體,下劃線縮進,增加字體大小,減小字體大小, 分別) 消耗字符串s,如果s是有效的,否則爲false產生真實。類似的東西在Python迴文

def valid_cs116_html(s): 
    if '/' or '<' or'>' not in s: 
     return True 

我只又寫道下降,這是不含有['/', '<', '>'],如何確定第二殼體'<t>' + s + '</t>'基本情況?

+2

你測試'如果「/」或「<' or'>」不屬於S:'?我的直覺告訴我,這不是在做你認爲的事。 –

+2

因此,這是[賦值7 Q3](https://www.student.cs.uwaterloo.ca/~cs116/Assignments/a07/a07.pdf)。我猜你沒看過有關[學術誠信(https://www.student.cs.uwaterloo.ca/~cs116/integrity):*「如果你發現自己陷入了困境,聯繫以尋求幫助的導師或教練,而不是從其他人處獲得解決方案。「* – jonrsharpe

+0

valid_cs116_html聽起來很像一個家庭作業:) –

回答

1

檢查字符串是否分別以<t></t>(對於您的每個有效t s)開始和結束。如果是這樣,剝離這些標籤並返回valid_cs116_html(s)其中s是「內部」字符串作爲你的描述。

而且,這樣的:

if '/' or '<' or'>' not in s: 

沒有做什麼,你認爲它。你需要:

if '/' not in s and '<' not in s and '>' not in s: 

甚至:

if not any(c in s for c in ('/', '<', '>')): 
1

你想在這裏做的是檢查在字符串開頭和結尾的具有匹配的標籤。我們可以使用Python re庫來匹配這些標籤,然後檢查字符串的其餘部分是否有效:

def valid_cs116_html(s): 
    match = re.match(r'^<(B|I|U|BIG|SMALL)>(.*?)</\1>$', s) 
    if match is not None: 
     return valid_cs116_html(match.group(2)) 
    else: 
     return all(c not in s for c in '/<>') 
+0

@AdamSmith你是說我的代碼字符串失敗? – murgatroid99

+0

Sheesh,評論刪除。我不知道今天我的思想在哪裏,但它顯然不是編碼的好日子! :)我得到了「迴文」的OP的評論,雖然,如果有領導而不是尾隨空白(反之亦然),壞事會發生掛斷了電話。這完全不相關,SORRY!然而'文本'不會失敗,這可能不是很大。 –