问题
问答题 案例分析题
阅读以下函数说明和C语言函数,将应填入____处的字句写在答题纸的对应栏内。
设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜色由输入的字符串表示)。从环上的某两粒珠子间剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如,10粒珠子颜色对应字符串为aaabbbadcc,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbadccaaa.共取走6粒珠子。
从下列的两道试题(试题五至试题六)中任选一道解答。如果解答的试题数超过一道,则题号小的一道解答有效。
答案
参考答案:
(1)step<0&&i<end(2)++c(3)s,len-1,c(4)s[j-1]=s[j](5)s[len-1]=t
解析:依据取珠子个数最多的规则,count函数每次从左或从右取出相同颜色的珠子,因此从右到左的条件为step<0&&i