2014-07-07 75 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!然而'文本'不会失败,这可能不是很大。 –