用Python 找最长子串

来源:互联网 发布:沙滩鞋淘宝 编辑:程序博客网 时间:2024/06/05 16:22

题目选自edX公开课 MITx: 6.00.1x Introduction to Computer Science and Programming 课程 Week2 的Problem Set 1的第三题。下面是原题内容。

Assume s is a string of lower case characters.

Write a program that prints the longest substring of s in which the letters occur in alphabetical order. For example, ifs = 'azcbobobegghakl', then your program should print

Longest substring in alphabetical order is: beggh

In the case of ties, print the first substring. For example, if s = 'abcbcd', then your program should print

Longest substring in alphabetical order is: abc

For problems such as these, do not include raw_input statements or define the variable s in any way. Our automated testing will provide a value of s for you - so the code you submit in the following box should assume s is already defined. If you are confused by this instruction, please review L4 Problems 10 and 11 before you begin this problem set.

代码如下:

#判断一个字符串内的字母是否是按字母表顺序# 如IsStrIncre('abbcdg') 返回 True# IsStrIncre('abbadg') 返回 False# 如果只有一个字符,也返回False def IsStrIncre(s):    for cnt in range(len(s) - 1):        if len(s) == 1:            return False                elif s[cnt] > s[cnt+1]:            return False    return True    s = 'abajsiesnwdw'# example codesubstr = ''for length in range(1, len(s)+1):    firstflag = True # a flag to remember the first string that satisfied the requirements                     # and ignore the strings satisfied the requirements but appeared after    for cnt in range(len(s)-length+1):                if IsStrIncre(s[cnt: cnt+length]):           if firstflag:                substr = s[cnt: cnt+length]               firstflag = False        print 'Longest substring in alphabetical order is: ' + substr      




0 0
原创粉丝点击