擅长:python、mysql、java
<p>一般来说,从输入中创建所有可能性的列表,然后根据所需的附加逻辑过滤结果,这是比较容易的。例如,在查找最长的子字符串时,可以找到输入的所有子字符串,然后只保留有效序列的元素:</p>
<pre><code>def is_valid(d):
return all(d[i] <= d[i+1] for i in range(len(d)-1))
def longest_substring(s):
substrings = list(filter(is_valid, [s[i:b] for i in range(len(s)) for b in range(len(s))]))
max_length = len(max(substrings, key=len)) #this finds the length length of the longest valid substring, to be used if a tie is discovered
return [i for i in substrings if len(i) == max_length][0]
l = [['abcbcd', 'abc'], ['azcbobobegghakl', 'beggh']]
for a, b in l:
assert longest_substring(a) == b
print('all tests passed')
</code></pre>
<p>输出:</p>
^{pr2}$