写分治递归算法,求解这个问题:有一个字符数组,比如aabbbbbc,定义run是连续相同字母组成的字符串,例如这个例子的run分别是aa bbbbb和c一共三个。要求用分治递归求解改字符数组每个run和该字符。还是这个例子,最后应该输出(a,2)(b,5)(c,1)
我的想法是二分法,每次一半一半分,直到分到只剩一个字符,返回(a[i],1),定义一个结构体里面有character和num两个变量,(a[i],1)就对应这两个变量。但是有一个问题当左右两个run的字符相同时需要合并,怎么知道什么时候需要合并呢。还有就是二分法的话返回的可以超过两个吗?比如bbbc,一直分的话返回应该有三个,第一个run是前两个b,第二个run是第三个b 第三个run是c 不知道该怎么做了。求大神帮助啊!!!
这个问题根本不适合什么分治递归。如果你像找个题目来练习分治递归,可以试试快速排序或者二分查找。