本文实例讲述了Python实现简单查找最长子串功能。分享给大家供大家参考,具体如下:
题目选自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 printLongest 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.
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# -*- coding:utf-8 -*- #! python2 #判断一个字符串内的字母是否是按字母表顺序 # 如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 code substr = '' 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 |
运行结果:
Longest substring in alphabetical order is: ajs
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/dazuo01/article/details/20283619