最长字母序子串问题:如何构建解题思路?
关于「最长字母序子串」问题的困惑与求助
我正在啃MIT那门热门课程里的「最长字母序子串」问题,翻了好多Stack Overflow上的代码实现,但就是卡在概念到实际解法的转化上。之前做的小练习难度都不高,这次真的卡壳了。
试过用纸笔推演,但完全摸不着头绪。别人代码里的计数器、「当前最长子串」这些逻辑我能看懂,但让我自己从头搭解法框架,脑子就一片空白。我甚至暂停课程去看其他编程书,但还是卡在这个问题上,就是跨不过从会用Python语法到灵活用它解题的坎儿。
课程配套的辅助资料、助教做的视频我都看过了,讲解太粗了,不够细。现在特别希望能有人和我结对编程,或者对着白板一步步拆解逻辑,还能随时解答我的疑问。
具体问题说明
假设s是由小写字符组成的字符串。
编写程序输出s中字母按序排列的最长子串。例如,若s = 'azcbobobegghakl',程序应输出:
Longest substring in alphabetical order is: beggh
若存在多个长度相同的子串,输出第一个。例如,若s = 'abcbcd',程序应输出:
Longest substring in alphabetical order is: abc
我未完成的尝试代码
s = 'azcbobobegghakl' current = s[0] longest = s[0] for letter in range(0, len(s) -1): if s[letter + 1] >= s[letter]: current.append(s[letter + 1]) if len(current) > len(longest): longest = current else: current =
抱歉代码格式有点问题,我刚接触这些,这个问题真的让我挺沮丧的。我不需要现成的代码片段,更想要能帮我拆解这个问题解题逻辑的阅读资源——毕竟现在的代码都是参考SO上的内容,只是用来理解逻辑,并非原创。
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

