擅长:python、mysql、java
<p>生成所有regex子字符串,如^a+b+c+$(从最长到最短)。
然后将这些regex与“abcghijkyxz”的所有子字符串(从最长到最短)进行匹配,并在第一个匹配处停止。在</p>
<pre><code>def all_substrings(s):
n = len(s)
for i in xrange(n, 0, -1):
for j in xrange(n - i + 1):
yield s[j:j + i]
def longest_alphabetical_substring(s):
for t in all_substrings("abcdefghijklmnopqrstuvwxyz"):
r = re.compile("^" + "".join(map(lambda x: x + "+", t)) + "$")
for u in all_substrings(s):
if r.match(u):
return u
print longest_alphabetical_substring("abcghiijkyxz")
</code></pre>
<p>上面印着“ghiijk”。在</p>