撰文 | JZ
专栏 | 九章算法
题目描述
一个字符串,每个字符表示一个场景。两个相同字符之间认为是一个连续的场景。例如:abcda,可以认为这五个字符是同一个场景。或者acafghbeb可以认为又aca和beb两个场景。场景之间有重合那么就把场景合起来,例如abcab,这里abca和bcab是重合的,那么认为这五个字符是同一个场景。给一个字符串,求最长场景。
思路点拨
首先对于每个字母,我们先找出最长的场景,然后会得到一堆线段,然后将这些线段按照左右端点排序,合并一下即可得到答案。
考点分析
本题整个过程都贯穿着贪心的思想,对于每个字母找出区间很容易想到,在合并区间的时候会有一点小技巧,需要好好斟酌一下,比较考察面试者的思维能力。
九章参考程序
https://www. jiuzhang.com/solution/t he-longest-scene/