【发布时间】:2019-10-02 10:03:46
【问题描述】:
编写一段代码来打印输入字符串中最长的字母子序列。 - 首先,要求用户输入任何字符串。 - 您的代码应打印输入字符串的最长子字符串,该子字符串仅包含英文字母,包括大写和小写字母。
如果有多个长度相同的子序列,则代码返回第一个。
如果 input_str 不包含任何字母,则函数返回空字符串。
例如,
对于输入字符串“ab24[AaBbCDExy0longest]”,它应该打印“AaBbCDExy”。
对于输入字符串'a a a1234b|c|d',它应该打印'a'。
对于输入字符串'12345',它应该打印“”(空字符串)。
尝试了以下代码,但没有成功:
# Your code here
#longest_letterSeq = ''
def longestSubstring(s):
longest_letterSeq = ''
i = 0
while(i<len(s)):
curr_letterSeq = ''
# For letter substring
while(i<len(s) and s[i].isalpha()):
curr_letterSeq += s[i]
i+= 1
# Case handling if the character is not letter
if(i< len(s) and not(s[i].isalpha())) :
i+= 1
if(len(curr_letterSeq) > len(longest_letterSeq) ):
longest_letterSeq = curr_letterSeq
return longest_letterSeq
str = input("Please input your string here: ")
print(longestSubstring(str))
有人可以帮助编辑或正确的代码吗?
【问题讨论】:
标签: python string python-3.7 subsequence